Coverage Report

Created: 2025-04-13 02:59

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <system_error>
32
#include <tuple>
33
34
namespace scn {
35
SCN_BEGIN_NAMESPACE
36
37
/////////////////////////////////////////////////////////////////
38
// Metaprogramming facilities
39
/////////////////////////////////////////////////////////////////
40
41
namespace detail {
42
43
template <typename T>
44
using integer_type_for_char =
45
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
46
47
template <typename T, template <typename...> class Templ>
48
struct is_specialization_of_impl : std::false_type {};
49
template <typename... T, template <typename...> class Templ>
50
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
51
52
template <typename T, template <typename...> class Templ>
53
using is_specialization_of =
54
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
55
template <typename T, template <typename...> class Templ>
56
inline constexpr bool is_specialization_of_v =
57
    is_specialization_of<T, Templ>::value;
58
59
// from mp11:
60
61
template <typename T>
62
struct mp_identity {
63
    using type = T;
64
};
65
template <typename T>
66
using mp_identity_t = typename mp_identity<T>::type;
67
68
template <bool B>
69
using mp_bool = std::integral_constant<bool, B>;
70
template <typename T>
71
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
72
template <typename T>
73
using mp_not = mp_bool<!T::value>;
74
75
template <bool C, typename T, typename... E>
76
struct mp_if_c_impl;
77
template <typename T, typename... E>
78
struct mp_if_c_impl<true, T, E...> {
79
    using type = T;
80
};
81
template <typename T, typename E>
82
struct mp_if_c_impl<false, T, E> {
83
    using type = E;
84
};
85
86
template <bool C, typename T, typename... E>
87
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
88
template <typename C, typename T, typename... E>
89
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
90
91
template <template <typename...> class F, typename... T>
92
struct mp_valid_impl {
93
    template <template <typename...> class G, typename = G<T...>>
94
    static std::true_type check(int);
95
    template <template <typename...> class>
96
    static std::false_type check(...);
97
98
    using type = decltype(check<F>(0));
99
};
100
101
template <template <typename...> class F, typename... T>
102
using mp_valid = typename mp_valid_impl<F, T...>::type;
103
template <template <typename...> class F, typename... T>
104
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
105
106
struct mp_nonesuch {};
107
template <template <typename...> class F, typename... T>
108
struct mp_defer_impl {
109
    using type = F<T...>;
110
};
111
112
template <template <typename...> class F, typename... T>
113
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
114
115
template <bool C, class T, template <class...> class F, class... U>
116
struct mp_eval_if_c_impl;
117
118
template <class T, template <class...> class F, class... U>
119
struct mp_eval_if_c_impl<true, T, F, U...> {
120
    using type = T;
121
};
122
123
template <class T, template <class...> class F, class... U>
124
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
125
126
template <bool C, class T, template <class...> class F, class... U>
127
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
128
template <class C, class T, template <class...> class F, class... U>
129
using mp_eval_if =
130
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
131
template <class C, class T, class Q, class... U>
132
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
133
                                                T,
134
                                                Q::template fn,
135
                                                U...>::type;
136
137
// mp_eval_if_not
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
140
template <class C, class T, class Q, class... U>
141
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
142
143
// mp_eval_or
144
template <class T, template <class...> class F, class... U>
145
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
146
template <class T, class Q, class... U>
147
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
148
149
// mp_valid_and_true
150
template <template <class...> class F, class... T>
151
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
152
template <class Q, class... T>
153
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
154
155
// extension
156
template <template <typename...> class F, typename... T>
157
using mp_valid_result =
158
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
159
template <template <typename...> class F, typename... T>
160
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
161
162
/////////////////////////////////////////////////////////////////
163
// pointer_traits and to_address
164
/////////////////////////////////////////////////////////////////
165
166
template <typename Ptr, typename>
167
struct pointer_traits {};
168
169
template <typename T>
170
struct pointer_traits<T*, void> {
171
    using pointer = T*;
172
    using element_type = T;
173
    using difference_type = std::ptrdiff_t;
174
175
    template <typename U>
176
    using rebind = U*;
177
178
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
179
    static constexpr pointer pointer_to(U& r) noexcept
180
    {
181
        return &r;
182
    }
183
184
    SCN_FORCE_INLINE static constexpr pointer to_address(pointer p) noexcept
185
    {
186
        return p;
187
    }
188
};
189
190
template <typename Ptr>
191
using apply_member_difference_type = typename Ptr::difference_type;
192
template <typename Ptr>
193
using get_member_difference_type =
194
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
195
196
template <typename Ptr, typename ElementType>
197
struct pointer_traits_generic_base {
198
    using pointer = Ptr;
199
    using element_type = ElementType;
200
201
    using difference_type = get_member_difference_type<Ptr>;
202
    static_assert(std::is_integral_v<difference_type>);
203
204
    // no rebind (TODO?)
205
206
    template <typename P = Ptr>
207
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
208
    {
209
        return Ptr::pointer_to(r);
210
    }
211
};
212
213
template <typename It, typename = void>
214
struct wrapped_pointer_iterator;
215
216
#ifdef _GLIBCXX_DEBUG
217
template <typename Elem, typename Container>
218
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
219
    SCN_FORCE_INLINE static constexpr auto to_address(
220
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
221
    {
222
        return it.base();
223
    }
224
};
225
#endif
226
#if SCN_STDLIB_GLIBCXX
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<
229
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
230
    SCN_FORCE_INLINE static constexpr auto to_address(
231
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
232
    {
233
        return it.base();
234
    }
235
};
236
#endif
237
#if SCN_STDLIB_LIBCPP
238
template <typename Elem>
239
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
240
    SCN_FORCE_INLINE static constexpr auto to_address(
241
        const std::__wrap_iter<Elem*>& it) noexcept
242
0
    {
243
0
        return it.base();
244
0
    }
245
};
246
#endif
247
248
template <typename I>
249
using apply_deref = decltype(*SCN_DECLVAL(I&));
250
template <typename I>
251
using apply_incr = decltype(++SCN_DECLVAL(I&));
252
template <typename I>
253
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
254
template <typename It>
255
struct wrapped_pointer_iterator<
256
    It,
257
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
258
                     mp_valid_v<apply_incr, It> &&
259
                     mp_valid_v<apply_member_unwrapped, It>>> {
260
    SCN_FORCE_INLINE static constexpr auto to_address(const It& it) noexcept
261
    {
262
        return it._Unwrapped();
263
    }
264
};
265
266
template <typename I>
267
using apply_member_to_address =
268
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
269
270
template <typename Iterator>
271
struct pointer_traits<
272
    Iterator,
273
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
274
    : pointer_traits_generic_base<
275
          Iterator,
276
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
277
    SCN_FORCE_INLINE static constexpr auto to_address(
278
        const Iterator& it) noexcept
279
0
    {
280
0
        return wrapped_pointer_iterator<Iterator>::to_address(it);
281
0
    }
282
};
283
284
template <typename It>
285
using apply_ptr_traits_to_address =
286
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
287
template <typename It>
288
inline constexpr bool can_make_address_from_iterator =
289
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
290
291
template <typename T>
292
SCN_FORCE_INLINE constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
293
197M
{
294
197M
    return p;
295
197M
}
char const* scn::v4::detail::to_address_impl<char const>(char const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
11.6M
{
294
11.6M
    return p;
295
11.6M
}
wchar_t const* scn::v4::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
185M
{
294
185M
    return p;
295
185M
}
296
template <typename Ptr>
297
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
298
                                                priority_tag<1>) noexcept
299
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
300
{
301
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
302
}
303
template <typename Ptr>
304
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
305
                                                priority_tag<0>) noexcept
306
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
307
                                               priority_tag<2>{}))
308
{
309
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
310
}
311
312
template <typename Ptr>
313
SCN_FORCE_INLINE constexpr auto to_address(Ptr&& p) noexcept
314
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
315
197M
{
316
197M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
197M
}
_ZN3scn2v46detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
10.4M
{
316
10.4M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
10.4M
}
_ZN3scn2v46detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
1.25M
{
316
1.25M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
1.25M
}
_ZN3scn2v46detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
5.83M
{
316
5.83M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
5.83M
}
_ZN3scn2v46detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
180M
{
316
180M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
180M
}
318
319
}  // namespace detail
320
321
/////////////////////////////////////////////////////////////////
322
// <expected> implementation
323
/////////////////////////////////////////////////////////////////
324
325
// The following implementation of expected is based on TartanLlama/expected,
326
// but is heavily modified.
327
//
328
// The original source is here:
329
//     https://github.com/TartanLlama/expected
330
// which is licensed under CC0 (Public Domain).
331
332
/**
333
 * \see `std::unexpected`
334
 */
335
template <typename E>
336
class SCN_TRIVIAL_ABI unexpected {
337
    static_assert(std::is_destructible_v<E>);
338
339
public:
340
    unexpected() = delete;
341
342
    template <
343
        typename Err = E,
344
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
345
                                    !std::is_same_v<Err, std::in_place_t> &&
346
                                    std::is_constructible_v<E, Err>>>
347
    explicit constexpr unexpected(Err&& e) noexcept(
348
        std::is_nothrow_constructible_v<E, Err>)
349
555k
        : m_unexpected(std::forward<Err>(e))
350
567k
    {
351
567k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
567k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error&, void>(scn::v4::scan_error&)
Line
Count
Source
349
432k
        : m_unexpected(std::forward<Err>(e))
350
432k
    {
351
432k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
432k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(scn::v4::scan_error&&)
Line
Count
Source
349
122k
        : m_unexpected(std::forward<Err>(e))
350
122k
    {
351
122k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
122k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error&, void>(scn::v4::impl::parse_error&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error, void>(scn::v4::impl::eof_error&&)
scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error&, void>(scn::v4::impl::eof_error&)
Line
Count
Source
349
12.7k
        : m_unexpected(std::forward<Err>(e))
350
12.7k
    {
351
12.7k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
12.7k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::unexpected<scn::v4::impl::parse_error::code, void>(scn::v4::impl::parse_error::code&&)
353
354
    template <typename... Args,
355
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
356
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
357
        std::is_nothrow_constructible_v<E, Args...>)
358
567k
        : m_unexpected(std::forward<Args>(args)...)
359
580k
    {
360
580k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
580k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(std::__1::in_place_t, scn::v4::scan_error&&)
Line
Count
Source
358
567k
        : m_unexpected(std::forward<Args>(args)...)
359
567k
    {
360
567k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
567k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(std::__1::in_place_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error::code, void>(std::__1::in_place_t, scn::v4::impl::parse_error::code&&)
362
363
    SCN_NODISCARD constexpr E& error() & noexcept
364
1.01M
    {
365
1.01M
        return m_unexpected;
366
1.01M
    }
scn::v4::unexpected<scn::v4::scan_error>::error() &
Line
Count
Source
364
987k
    {
365
987k
        return m_unexpected;
366
987k
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::error() &
Line
Count
Source
364
25.4k
    {
365
25.4k
        return m_unexpected;
366
25.4k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::error() &
367
    SCN_NODISCARD constexpr const E& error() const& noexcept
368
0
    {
369
0
        return m_unexpected;
370
0
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() const &
371
372
    SCN_NODISCARD constexpr E&& error() && noexcept
373
    {
374
        return std::move(m_unexpected);
375
    }
376
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
377
    {
378
        return std::move(m_unexpected);
379
    }
380
381
private:
382
    E m_unexpected;
383
};
384
385
template <typename E>
386
unexpected(E) -> unexpected<E>;
387
388
struct unexpect_t {};
389
inline constexpr unexpect_t unexpect{};
390
391
namespace detail {
392
template <typename T, typename... Args>
393
T* construct_at(T* p, Args&&... args) noexcept(
394
    std::is_nothrow_constructible_v<T, Args...>)
395
1.95M
{
396
1.95M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
1.95M
        T(std::forward<Args>(args)...);
398
1.95M
}
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
109k
{
396
109k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
109k
        T(std::forward<Args>(args)...);
398
109k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, std::__1::in_place_t const&, scn::v4::scan_error>(scn::v4::unexpected<scn::v4::scan_error>*, std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
395
68.7k
{
396
68.7k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
68.7k
        T(std::forward<Args>(args)...);
398
68.7k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*, scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
395
103k
{
396
103k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
103k
        T(std::forward<Args>(args)...);
398
103k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
129k
{
396
129k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
129k
        T(std::forward<Args>(args)...);
398
129k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
772k
{
396
772k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
772k
        T(std::forward<Args>(args)...);
398
772k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
772k
{
396
772k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
772k
        T(std::forward<Args>(args)...);
398
772k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
399
template <typename T>
400
void destroy_at(T* p) noexcept
401
1.92M
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
1.92M
    else {
408
1.92M
        p->~T();
409
1.92M
    }
410
1.92M
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
109k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
109k
    else {
408
109k
        p->~T();
409
109k
    }
410
109k
}
void scn::v4::detail::destroy_at<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*)
Line
Count
Source
401
137k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
137k
    else {
408
137k
        p->~T();
409
137k
    }
410
137k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
129k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
129k
    else {
408
129k
        p->~T();
409
129k
    }
410
129k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
772k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
772k
    else {
408
772k
        p->~T();
409
772k
    }
410
772k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
772k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
772k
    else {
408
772k
        p->~T();
409
772k
    }
410
772k
}
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
411
412
struct deferred_init_tag_t {};
413
static constexpr deferred_init_tag_t deferred_init_tag{};
414
415
template <typename T,
416
          typename E,
417
          bool IsTriviallyDestructible =
418
              (std::is_void_v<T> || std::is_trivially_destructible_v<T>)&&std::
419
                  is_trivially_destructible_v<E>>
420
struct expected_storage_base;
421
422
template <typename T, typename E>
423
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
424
    constexpr expected_storage_base() noexcept(
425
        std::is_nothrow_default_constructible_v<T>)
426
881k
        : m_value(T{}), m_has_value(true)
427
881k
    {
428
881k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
109k
        : m_value(T{}), m_has_value(true)
427
109k
    {
428
109k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
772k
        : m_value(T{}), m_has_value(true)
427
772k
    {
428
772k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base()
429
430
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
431
        : m_deferred_init(), m_has_value(false)
432
    {
433
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        std::in_place_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
440
15.9M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
15.9M
    {
442
15.9M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
440
195k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
195k
    {
442
195k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
440
117k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
117k
    {
442
117k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
440
1.49M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.49M
    {
442
1.49M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
440
749k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
749k
    {
442
749k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
284k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
284k
    {
442
284k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
1.80M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.80M
    {
442
1.80M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
119k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
119k
    {
442
119k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
440
96.9k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
96.9k
    {
442
96.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
440
163k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
163k
    {
442
163k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
440
698
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
698
    {
442
698
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
755k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
755k
    {
442
755k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
440
605k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
605k
    {
442
605k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
440
1.21M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.21M
    {
442
1.21M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
440
120
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
120
    {
442
120
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
475k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
475k
    {
442
475k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
3.61M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
3.61M
    {
442
3.61M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
199k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
199k
    {
442
199k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
440
2.56M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
2.56M
    {
442
2.56M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
440
1.39k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.39k
    {
442
1.39k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
1.51M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.51M
    {
442
1.51M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
440
240
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
240
    {
442
240
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
443
444
    template <typename... Args,
445
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
446
    constexpr explicit expected_storage_base(
447
        unexpect_t,
448
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
449
384k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
384k
          m_has_value(false)
451
384k
    {
452
384k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
22.9k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
22.9k
          m_has_value(false)
451
22.9k
    {
452
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
11.4k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
11.4k
          m_has_value(false)
451
11.4k
    {
452
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
11.4k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
11.4k
          m_has_value(false)
451
11.4k
    {
452
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
45.8k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
45.8k
          m_has_value(false)
451
45.8k
    {
452
45.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
22.9k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
22.9k
          m_has_value(false)
451
22.9k
    {
452
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
22.9k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
22.9k
          m_has_value(false)
451
22.9k
    {
452
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
14.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
14.5k
          m_has_value(false)
451
14.5k
    {
452
14.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
27.8k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
27.8k
          m_has_value(false)
451
27.8k
    {
452
27.8k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
103k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
103k
          m_has_value(false)
451
103k
    {
452
103k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
28.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
28.5k
          m_has_value(false)
451
28.5k
    {
452
28.5k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
55.6k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
55.6k
          m_has_value(false)
451
55.6k
    {
452
55.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
2.25k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.25k
          m_has_value(false)
451
2.25k
    {
452
2.25k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
972
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
972
          m_has_value(false)
451
972
    {
452
972
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
3.46k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
3.46k
          m_has_value(false)
451
3.46k
    {
452
3.46k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
1.38k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.38k
          m_has_value(false)
451
1.38k
    {
452
1.38k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
2.33k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.33k
          m_has_value(false)
451
2.33k
    {
452
2.33k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
932
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
932
          m_has_value(false)
451
932
    {
452
932
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
4.66k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
4.66k
          m_has_value(false)
451
4.66k
    {
452
4.66k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
1.86k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.86k
          m_has_value(false)
451
1.86k
    {
452
1.86k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
453
454
    constexpr T& get_value() & noexcept
455
19.4M
    {
456
19.4M
        return m_value;
457
19.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
195k
    {
456
195k
        return m_value;
457
195k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
3.42M
    {
456
3.42M
        return m_value;
457
3.42M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
305k
    {
456
305k
        return m_value;
457
305k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
117k
    {
456
117k
        return m_value;
457
117k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.49M
    {
456
1.49M
        return m_value;
457
1.49M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
2.27M
    {
456
2.27M
        return m_value;
457
2.27M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
749k
    {
456
749k
        return m_value;
457
749k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
119k
    {
456
119k
        return m_value;
457
119k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
755k
    {
456
755k
        return m_value;
457
755k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
476k
    {
456
476k
        return m_value;
457
476k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
3.61M
    {
456
3.61M
        return m_value;
457
3.61M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
199k
    {
456
199k
        return m_value;
457
199k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
96.9k
    {
456
96.9k
        return m_value;
457
96.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
284k
    {
456
284k
        return m_value;
457
284k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
163k
    {
456
163k
        return m_value;
457
163k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
605k
    {
456
605k
        return m_value;
457
605k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.80M
    {
456
1.80M
        return m_value;
457
1.80M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
1.51M
    {
456
1.51M
        return m_value;
457
1.51M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.21M
    {
456
1.21M
        return m_value;
457
1.21M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
458
    constexpr const T& get_value() const& noexcept
459
0
    {
460
0
        return m_value;
461
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
462
    constexpr T&& get_value() && noexcept
463
0
    {
464
0
        return std::move(m_value);
465
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &&
466
    constexpr const T&& get_value() const&& noexcept
467
    {
468
        return std::move(m_value);
469
    }
470
471
    constexpr unexpected<E>& get_unexpected() & noexcept
472
384k
    {
473
384k
        return m_unexpected;
474
384k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
22.9k
    {
473
22.9k
        return m_unexpected;
474
22.9k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
103k
    {
473
103k
        return m_unexpected;
474
103k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
11.4k
    {
473
11.4k
        return m_unexpected;
474
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
11.4k
    {
473
11.4k
        return m_unexpected;
474
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
45.8k
    {
473
45.8k
        return m_unexpected;
474
45.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
22.9k
    {
473
22.9k
        return m_unexpected;
474
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
22.9k
    {
473
22.9k
        return m_unexpected;
474
22.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
2.25k
    {
473
2.25k
        return m_unexpected;
474
2.25k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
2.33k
    {
473
2.33k
        return m_unexpected;
474
2.33k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
28.5k
    {
473
28.5k
        return m_unexpected;
474
28.5k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
55.6k
    {
473
55.6k
        return m_unexpected;
474
55.6k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
3.46k
    {
473
3.46k
        return m_unexpected;
474
3.46k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
972
    {
473
972
        return m_unexpected;
474
972
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
14.5k
    {
473
14.5k
        return m_unexpected;
474
14.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
1.38k
    {
473
1.38k
        return m_unexpected;
474
1.38k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
932
    {
473
932
        return m_unexpected;
474
932
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
27.8k
    {
473
27.8k
        return m_unexpected;
474
27.8k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
4.66k
    {
473
4.66k
        return m_unexpected;
474
4.66k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
1.86k
    {
473
1.86k
        return m_unexpected;
474
1.86k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
475
    constexpr const unexpected<E>& get_unexpected() const& noexcept
476
0
    {
477
0
        return m_unexpected;
478
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
479
    constexpr unexpected<E>&& get_unexpected() && noexcept
480
34.3k
    {
481
34.3k
        return std::move(m_unexpected);
482
34.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
11.4k
    {
481
11.4k
        return std::move(m_unexpected);
482
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
22.9k
    {
481
22.9k
        return std::move(m_unexpected);
482
22.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &&
483
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
484
    {
485
        return std::move(m_unexpected);
486
    }
487
488
    SCN_NODISCARD constexpr bool has_value() const noexcept
489
37.9M
    {
490
37.9M
        return m_has_value;
491
37.9M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
437k
    {
490
437k
        return m_has_value;
491
437k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
7.09M
    {
490
7.09M
        return m_has_value;
491
7.09M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
437k
    {
490
437k
        return m_has_value;
491
437k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
258k
    {
490
258k
        return m_has_value;
491
258k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.08M
    {
490
3.08M
        return m_has_value;
491
3.08M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.08M
    {
490
3.08M
        return m_has_value;
491
3.08M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.54M
    {
490
1.54M
        return m_has_value;
491
1.54M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
242k
    {
490
242k
        return m_has_value;
491
242k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
1.51M
    {
490
1.51M
        return m_has_value;
491
1.51M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.01M
    {
490
1.01M
        return m_has_value;
491
1.01M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
7.33M
    {
490
7.33M
        return m_has_value;
491
7.33M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
406k
    {
490
406k
        return m_has_value;
491
406k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
195k
    {
490
195k
        return m_has_value;
491
195k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
598k
    {
490
598k
        return m_has_value;
491
598k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
329k
    {
490
329k
        return m_has_value;
491
329k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.21M
    {
490
1.21M
        return m_has_value;
491
1.21M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.66M
    {
490
3.66M
        return m_has_value;
491
3.66M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
3.03M
    {
490
3.03M
        return m_has_value;
491
3.03M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
2.42M
    {
490
2.42M
        return m_has_value;
491
2.42M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
492
493
    template <typename... Args>
494
    void construct(Args&&... args) noexcept(
495
        std::is_nothrow_constructible_v<T, Args...>)
496
0
    {
497
0
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
498
0
        m_has_value = true;
499
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
500
    template <typename... Args>
501
    void construct_unexpected(Args&&... args) noexcept(
502
        std::is_nothrow_constructible_v<E, Args...>)
503
34.3k
    {
504
34.3k
        scn::detail::construct_at(&get_unexpected(),
505
34.3k
                                  std::forward<Args>(args)...);
506
34.3k
        m_has_value = false;
507
34.3k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
11.4k
    {
504
11.4k
        scn::detail::construct_at(&get_unexpected(),
505
11.4k
                                  std::forward<Args>(args)...);
506
11.4k
        m_has_value = false;
507
11.4k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
22.9k
    {
504
22.9k
        scn::detail::construct_at(&get_unexpected(),
505
22.9k
                                  std::forward<Args>(args)...);
506
22.9k
        m_has_value = false;
507
22.9k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
508
509
    // No-op, because T and E are trivially destructible
510
34.3k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
11.4k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
22.9k
    static constexpr void destroy_value() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_value()
511
0
    static constexpr void destroy_unexpected() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_unexpected()
512
513
private:
514
    union {
515
        T m_value;
516
        unexpected<E> m_unexpected;
517
        char m_deferred_init;
518
    };
519
    bool m_has_value;
520
};
521
522
template <typename E>
523
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
524
#if SCN_STD >= SCN_STD_20
525
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
526
#else
527
    constexpr expected_storage_base() noexcept
528
7.15M
        : m_deferred_init(), m_has_value(true)
529
7.15M
    {
530
7.15M
    }
531
#endif
532
533
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
534
        : m_deferred_init(), m_has_value(false)
535
    {
536
    }
537
538
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
539
        : m_has_value(true)
540
    {
541
    }
542
543
    template <typename... Args,
544
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
545
    explicit constexpr expected_storage_base(
546
        unexpect_t,
547
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
548
126k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
549
126k
          m_has_value(false)
550
126k
    {
551
126k
    }
552
553
    constexpr unexpected<E>& get_unexpected() & noexcept
554
95.1k
    {
555
95.1k
        return m_unexpected;
556
95.1k
    }
557
    constexpr const unexpected<E>& get_unexpected() const& noexcept
558
    {
559
        return m_unexpected;
560
    }
561
    constexpr unexpected<E>&& get_unexpected() && noexcept
562
    {
563
        return std::move(m_unexpected);
564
    }
565
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
566
    {
567
        return std::move(m_unexpected);
568
    }
569
570
    SCN_NODISCARD constexpr bool has_value() const noexcept
571
8.37M
    {
572
8.37M
        return m_has_value;
573
8.37M
    }
574
575
    template <typename... Args>
576
    void construct(Args&&...) noexcept
577
    {
578
        m_has_value = true;
579
    }
580
    template <typename... Args>
581
    void construct_unexpected(Args&&... args) noexcept(
582
        std::is_nothrow_constructible_v<E, Args...>)
583
    {
584
        scn::detail::construct_at(&get_unexpected(),
585
                                  std::forward<Args>(args)...);
586
        m_has_value = false;
587
    }
588
589
    static constexpr void destroy_value() noexcept {}
590
    static constexpr void destroy_unexpected() noexcept {}
591
592
private:
593
    union {
594
        unexpected<E> m_unexpected;
595
        char m_deferred_init;
596
    };
597
    bool m_has_value;
598
};
599
600
/**
601
 * Implementation of `std::max` without including `<algorithm>`
602
 */
603
template <typename T>
604
constexpr T max(T a, T b) noexcept
605
0
{
606
0
    return (a < b) ? b : a;
607
0
}
608
609
template <typename T, typename E>
610
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
611
1.78M
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
1.78M
    {
613
1.78M
        construct();
614
1.78M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
109k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
109k
    {
613
109k
        construct();
614
109k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
129k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
129k
    {
613
129k
        construct();
614
129k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
772k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
772k
    {
613
772k
        construct();
614
772k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
772k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
772k
    {
613
772k
        construct();
614
772k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
615
616
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
617
        : m_has_value(false)
618
    {
619
    }
620
621
    template <typename... Args,
622
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
623
    explicit constexpr expected_storage_base(
624
        std::in_place_t,
625
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
626
0
        : m_has_value(true)
627
0
    {
628
0
        construct(std::forward<Args>(args)...);
629
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
630
631
    template <typename... Args,
632
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
633
    explicit constexpr expected_storage_base(
634
        unexpect_t,
635
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
636
68.7k
        : m_has_value(false)
637
68.7k
    {
638
68.7k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
68.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
11.4k
        : m_has_value(false)
637
11.4k
    {
638
11.4k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
11.4k
        : m_has_value(false)
637
11.4k
    {
638
11.4k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
22.9k
        : m_has_value(false)
637
22.9k
    {
638
22.9k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
22.9k
        : m_has_value(false)
637
22.9k
    {
638
22.9k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
22.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
640
641
    ~expected_storage_base()
642
1.85M
    {
643
1.85M
        if (has_value()) {
644
1.71M
            destroy_value();
645
1.71M
        }
646
137k
        else {
647
137k
            destroy_unexpected();
648
137k
        }
649
1.85M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
120k
    {
643
120k
        if (has_value()) {
644
97.9k
            destroy_value();
645
97.9k
        }
646
22.9k
        else {
647
22.9k
            destroy_unexpected();
648
22.9k
        }
649
120k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
140k
    {
643
140k
        if (has_value()) {
644
117k
            destroy_value();
645
117k
        }
646
22.9k
        else {
647
22.9k
            destroy_unexpected();
648
22.9k
        }
649
140k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
795k
    {
643
795k
        if (has_value()) {
644
749k
            destroy_value();
645
749k
        }
646
45.8k
        else {
647
45.8k
            destroy_unexpected();
648
45.8k
        }
649
795k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
795k
    {
643
795k
        if (has_value()) {
644
749k
            destroy_value();
645
749k
        }
646
45.8k
        else {
647
45.8k
            destroy_unexpected();
648
45.8k
        }
649
795k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
650
651
    constexpr T& get_value() & noexcept
652
5.21M
    {
653
5.21M
        return *value_ptr();
654
5.21M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
305k
    {
653
305k
        return *value_ptr();
654
305k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
364k
    {
653
364k
        return *value_ptr();
654
364k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
2.27M
    {
653
2.27M
        return *value_ptr();
654
2.27M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
2.27M
    {
653
2.27M
        return *value_ptr();
654
2.27M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
655
    constexpr const T& get_value() const& noexcept
656
    {
657
        return *value_ptr();
658
    }
659
    constexpr T&& get_value() && noexcept
660
0
    {
661
0
        return std::move(*value_ptr());
662
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
663
    constexpr const T&& get_value() const&& noexcept
664
    {
665
        return std::move(*value_ptr());
666
    }
667
668
    constexpr unexpected<E>& get_unexpected() & noexcept
669
0
    {
670
0
        return *unexpected_ptr();
671
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
672
    constexpr const unexpected<E>& get_unexpected() const& noexcept
673
    {
674
        return *unexpected_ptr();
675
    }
676
    constexpr unexpected<E>&& get_unexpected() && noexcept
677
68.7k
    {
678
68.7k
        return std::move(*unexpected_ptr());
679
68.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
11.4k
    {
678
11.4k
        return std::move(*unexpected_ptr());
679
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
11.4k
    {
678
11.4k
        return std::move(*unexpected_ptr());
679
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
22.9k
    {
678
22.9k
        return std::move(*unexpected_ptr());
679
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
22.9k
    {
678
22.9k
        return std::move(*unexpected_ptr());
679
22.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
680
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
681
    {
682
        return std::move(*unexpected_ptr());
683
    }
684
685
    SCN_NODISCARD constexpr bool has_value() const noexcept
686
8.98M
    {
687
8.98M
        return m_has_value;
688
8.98M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
558k
    {
687
558k
        return m_has_value;
688
558k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
656k
    {
687
656k
        return m_has_value;
688
656k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
3.88M
    {
687
3.88M
        return m_has_value;
688
3.88M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
3.88M
    {
687
3.88M
        return m_has_value;
688
3.88M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
689
690
    template <typename... Args>
691
    void construct(Args&&... args) noexcept(
692
        std::is_nothrow_constructible_v<T, Args...>)
693
1.78M
    {
694
1.78M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
1.78M
        m_has_value = true;
696
1.78M
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
109k
    {
694
109k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
109k
        m_has_value = true;
696
109k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
129k
    {
694
129k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
129k
        m_has_value = true;
696
129k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
772k
    {
694
772k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
772k
        m_has_value = true;
696
772k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
772k
    {
694
772k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
772k
        m_has_value = true;
696
772k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
697
    template <typename... Args>
698
    void construct_unexpected(Args&&... args) noexcept(
699
        std::is_nothrow_constructible_v<E, Args...>)
700
137k
    {
701
137k
        scn::detail::construct_at(unexpected_ptr(),
702
137k
                                  std::forward<Args>(args)...);
703
137k
        m_has_value = false;
704
137k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
11.4k
    {
701
11.4k
        scn::detail::construct_at(unexpected_ptr(),
702
11.4k
                                  std::forward<Args>(args)...);
703
11.4k
        m_has_value = false;
704
11.4k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
11.4k
    {
701
11.4k
        scn::detail::construct_at(unexpected_ptr(),
702
11.4k
                                  std::forward<Args>(args)...);
703
11.4k
        m_has_value = false;
704
11.4k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
11.4k
    {
701
11.4k
        scn::detail::construct_at(unexpected_ptr(),
702
11.4k
                                  std::forward<Args>(args)...);
703
11.4k
        m_has_value = false;
704
11.4k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
11.4k
    {
701
11.4k
        scn::detail::construct_at(unexpected_ptr(),
702
11.4k
                                  std::forward<Args>(args)...);
703
11.4k
        m_has_value = false;
704
11.4k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
22.9k
    {
701
22.9k
        scn::detail::construct_at(unexpected_ptr(),
702
22.9k
                                  std::forward<Args>(args)...);
703
22.9k
        m_has_value = false;
704
22.9k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
22.9k
    {
701
22.9k
        scn::detail::construct_at(unexpected_ptr(),
702
22.9k
                                  std::forward<Args>(args)...);
703
22.9k
        m_has_value = false;
704
22.9k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
22.9k
    {
701
22.9k
        scn::detail::construct_at(unexpected_ptr(),
702
22.9k
                                  std::forward<Args>(args)...);
703
22.9k
        m_has_value = false;
704
22.9k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
22.9k
    {
701
22.9k
        scn::detail::construct_at(unexpected_ptr(),
702
22.9k
                                  std::forward<Args>(args)...);
703
22.9k
        m_has_value = false;
704
22.9k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
705
706
    void destroy_value() noexcept
707
1.78M
    {
708
1.78M
        scn::detail::destroy_at(value_ptr());
709
1.78M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
109k
    {
708
109k
        scn::detail::destroy_at(value_ptr());
709
109k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
129k
    {
708
129k
        scn::detail::destroy_at(value_ptr());
709
129k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
772k
    {
708
772k
        scn::detail::destroy_at(value_ptr());
709
772k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
772k
    {
708
772k
        scn::detail::destroy_at(value_ptr());
709
772k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
710
    void destroy_unexpected() noexcept
711
137k
    {
712
137k
        scn::detail::destroy_at(unexpected_ptr());
713
137k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
22.9k
    {
712
22.9k
        scn::detail::destroy_at(unexpected_ptr());
713
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
22.9k
    {
712
22.9k
        scn::detail::destroy_at(unexpected_ptr());
713
22.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
45.8k
    {
712
45.8k
        scn::detail::destroy_at(unexpected_ptr());
713
45.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
45.8k
    {
712
45.8k
        scn::detail::destroy_at(unexpected_ptr());
713
45.8k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
714
715
private:
716
    T* value_ptr() noexcept
717
8.77M
    {
718
8.77M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
8.77M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
524k
    {
718
524k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
524k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
622k
    {
718
622k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
622k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
3.81M
    {
718
3.81M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
3.81M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
3.81M
    {
718
3.81M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
3.81M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
720
    const T* value_ptr() const noexcept
721
    {
722
        return reinterpret_cast<const T*>(
723
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
724
    }
725
726
    SCN_GCC_PUSH
727
    SCN_GCC_IGNORE("-Wcast-align")
728
    unexpected<E>* unexpected_ptr() noexcept
729
343k
    {
730
343k
        return reinterpret_cast<unexpected<E>*>(
731
343k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
343k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
57.2k
    {
730
57.2k
        return reinterpret_cast<unexpected<E>*>(
731
57.2k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
57.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
57.2k
    {
730
57.2k
        return reinterpret_cast<unexpected<E>*>(
731
57.2k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
57.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
114k
    {
730
114k
        return reinterpret_cast<unexpected<E>*>(
731
114k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
114k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
114k
    {
730
114k
        return reinterpret_cast<unexpected<E>*>(
731
114k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
114k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
733
    const unexpected<E>* unexpected_ptr() const noexcept
734
    {
735
        return reinterpret_cast<const unexpected<E>*>(
736
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
737
    }
738
    SCN_GCC_POP
739
740
    static constexpr std::size_t required_size =
741
        detail::max(sizeof(T), sizeof(unexpected<E>));
742
    static constexpr std::size_t required_alignment =
743
        detail::max(alignof(T), alignof(unexpected<E>));
744
745
    alignas(required_alignment) unsigned char m_memory[required_size];
746
    bool m_has_value;
747
};
748
749
template <typename E>
750
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
751
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
752
753
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
754
        : m_has_value(false)
755
    {
756
    }
757
758
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
759
        : m_has_value(true)
760
    {
761
    }
762
763
    template <typename... Args,
764
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
765
    explicit constexpr expected_storage_base(
766
        unexpect_t,
767
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
768
        : m_has_value(false)
769
    {
770
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
771
    }
772
773
    ~expected_storage_base()
774
    {
775
        if (!has_value()) {
776
            destroy_unexpected();
777
        }
778
    }
779
780
    constexpr unexpected<E>& get_unexpected() & noexcept
781
    {
782
        return *unexpected_ptr();
783
    }
784
    constexpr const unexpected<E>& get_unexpected() const& noexcept
785
    {
786
        return *unexpected_ptr();
787
    }
788
    constexpr unexpected<E>&& get_unexpected() && noexcept
789
    {
790
        return std::move(*unexpected_ptr());
791
    }
792
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
793
    {
794
        return std::move(*unexpected_ptr());
795
    }
796
797
    SCN_NODISCARD constexpr bool has_value() const noexcept
798
    {
799
        return m_has_value;
800
    }
801
802
    template <typename... Args>
803
    constexpr void construct(Args&&...) noexcept
804
    {
805
        m_has_value = true;
806
    }
807
    template <typename... Args>
808
    void construct_unexpected(Args&&... args) noexcept(
809
        std::is_nothrow_constructible_v<E, Args...>)
810
    {
811
        scn::detail::construct_at(unexpected_ptr(),
812
                                  std::forward<Args>(args)...);
813
        m_has_value = false;
814
    }
815
816
    static constexpr void destroy_value() noexcept {}
817
    void destroy_unexpected() noexcept
818
    {
819
        scn::detail::destroy_at(unexpected_ptr());
820
    }
821
822
private:
823
    SCN_GCC_PUSH
824
    SCN_GCC_IGNORE("-Wcast-align")
825
    unexpected<E>* unexpected_ptr()
826
    {
827
        return reinterpret_cast<unexpected<E>*>(m_memory);
828
    }
829
    const unexpected<E>* unexpected_ptr() const
830
    {
831
        return reinterpret_cast<const unexpected<E>*>(m_memory);
832
    }
833
    SCN_GCC_POP
834
835
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
836
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
837
838
    alignas(required_alignment) unsigned char m_memory[required_size];
839
    bool m_has_value;
840
};
841
842
template <typename T, typename U>
843
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
844
845
template <typename T, typename E, typename Enable = void>
846
struct expected_operations_base;
847
848
template <typename T, typename E>
849
struct SCN_TRIVIAL_ABI expected_operations_base<
850
    T,
851
    E,
852
    std::enable_if_t<(
853
        std::is_void_v<T> ||
854
        std::is_trivially_copyable_v<T>)&&std::is_trivially_copyable_v<E>>>
855
    : expected_storage_base<T, E> {
856
    using expected_storage_base<T, E>::expected_storage_base;
857
};
858
859
template <typename T, typename E>
860
struct SCN_TRIVIAL_ABI expected_operations_base<
861
    T,
862
    E,
863
    std::enable_if_t<!std::is_void_v<T> && (!std::is_trivially_copyable_v<T> ||
864
                                            !std::is_trivially_copyable_v<E>)>>
865
    : expected_storage_base<T, E> {
866
    using expected_storage_base<T, E>::expected_storage_base;
867
868
    expected_operations_base(const expected_operations_base& other) noexcept(
869
        std::is_nothrow_copy_constructible_v<T> &&
870
        std::is_nothrow_copy_constructible_v<E>)
871
        : expected_storage_base<T, E>(deferred_init_tag)
872
    {
873
        construct_common(other);
874
    }
875
    expected_operations_base(expected_operations_base&& other) noexcept(
876
        std::is_nothrow_move_constructible_v<T> &&
877
        std::is_nothrow_move_constructible_v<E>)
878
        : expected_storage_base<T, E>(deferred_init_tag)
879
    {
880
        construct_common(std::move(other));
881
    }
882
883
    expected_operations_base& operator=(const expected_operations_base& other)
884
    // gcc 11 and lower evaluate noexcept in a weird context
885
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
886
        noexcept(noexcept(
887
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
888
#else
889
        noexcept(noexcept(assign_common(other)))
890
#endif
891
    {
892
        assign_common(other);
893
        return *this;
894
    }
895
    expected_operations_base& operator=(expected_operations_base&& other)
896
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
897
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
898
                              .assign_common(std::move(other))))
899
#else
900
        noexcept(noexcept(assign_common(std::move(other))))
901
#endif
902
103k
    {
903
103k
        assign_common(std::move(other));
904
103k
        return *this;
905
103k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.4k
    {
903
11.4k
        assign_common(std::move(other));
904
11.4k
        return *this;
905
11.4k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.4k
    {
903
11.4k
        assign_common(std::move(other));
904
11.4k
        return *this;
905
11.4k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.4k
    {
903
11.4k
        assign_common(std::move(other));
904
11.4k
        return *this;
905
11.4k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
22.9k
    {
903
22.9k
        assign_common(std::move(other));
904
22.9k
        return *this;
905
22.9k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
22.9k
    {
903
22.9k
        assign_common(std::move(other));
904
22.9k
        return *this;
905
22.9k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
22.9k
    {
903
22.9k
        assign_common(std::move(other));
904
22.9k
        return *this;
905
22.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
906
907
    ~expected_operations_base() = default;
908
909
private:
910
    template <typename Other>
911
    void construct_common(Other&& other) noexcept(
912
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
913
                     .construct(std::forward<Other>(other).get_value())) &&
914
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
915
                     .construct_unexpected(
916
                         std::forward<Other>(other).get_unexpected())))
917
0
    {
918
0
        if (other.has_value()) {
919
0
            this->construct(std::forward<Other>(other).get_value());
920
0
        }
921
0
        else {
922
0
            this->construct_unexpected(
923
0
                std::forward<Other>(other).get_unexpected());
924
0
        }
925
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
926
927
    template <typename Other>
928
    void assign_common(Other&& other)
929
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
930
        noexcept(
931
            noexcept(SCN_DECLVAL(expected_operations_base&)
932
                         .reassign_value(std::forward<Other>(other))) &&
933
            noexcept(SCN_DECLVAL(expected_operations_base&)
934
                         .reassign_unexpected(std::forward<Other>(other))) &&
935
            noexcept(SCN_DECLVAL(expected_operations_base&)
936
                         .assign_value_over_unexpected(
937
                             std::forward<Other>(other))) &&
938
            noexcept(
939
                SCN_DECLVAL(expected_operations_base&)
940
                    .assign_unexpected_over_value(std::forward<Other>(other))))
941
#else
942
        noexcept(
943
            noexcept(reassign_value(std::forward<Other>(other))) &&
944
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
945
            noexcept(
946
                assign_value_over_unexpected(std::forward<Other>(other))) &&
947
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
948
#endif
949
103k
    {
950
103k
        if (this->has_value()) {
951
103k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
103k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
103k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.4k
    {
950
11.4k
        if (this->has_value()) {
951
11.4k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.4k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.4k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.4k
    {
950
11.4k
        if (this->has_value()) {
951
11.4k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.4k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.4k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.4k
    {
950
11.4k
        if (this->has_value()) {
951
11.4k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.4k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.4k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
22.9k
    {
950
22.9k
        if (this->has_value()) {
951
22.9k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
22.9k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
22.9k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
22.9k
    {
950
22.9k
        if (this->has_value()) {
951
22.9k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
22.9k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
22.9k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
22.9k
    {
950
22.9k
        if (this->has_value()) {
951
22.9k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
22.9k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
22.9k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
962
963
    template <typename Other>
964
    void reassign_value(Other&& other) noexcept(
965
        std::is_nothrow_assignable_v<
966
            T,
967
            decltype(std::forward<Other>(other).get_value())>)
968
0
    {
969
0
        this->get_value() = std::forward<Other>(other).get_value();
970
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
971
972
    template <typename Other>
973
    void reassign_unexpected(Other&& other) noexcept(
974
        std::is_nothrow_assignable_v<
975
            E,
976
            decltype(std::forward<Other>(other).get_unexpected())>)
977
0
    {
978
0
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
979
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
980
981
#if SCN_HAS_EXCEPTIONS
982
    void assign_value_over_unexpected(
983
        const expected_operations_base&
984
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
985
                            std::is_nothrow_move_constructible_v<T>)
986
    {
987
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
988
            this->destroy_unexpected();
989
            this->construct(other.get_value());
990
        }
991
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
992
            T tmp = other.get_value();
993
            this->destroy_unexpected();
994
            this->construct(std::move(tmp));
995
        }
996
        else {
997
            auto tmp = std::move(this->get_unexpecetd());
998
            this->destroy_unexpected();
999
1000
            try {
1001
                this->construct(other.get());
1002
            }
1003
            catch (...) {
1004
                this->construct_unexpected(std::move(tmp));
1005
                throw;
1006
            }
1007
        }
1008
    }
1009
1010
    void
1011
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
1012
        std::is_nothrow_move_constructible_v<T>)
1013
0
    {
1014
0
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
1015
0
            this->destroy_unexpected();
1016
0
            this->construct(std::move(other).get_value());
1017
        }
1018
        else {
1019
            auto tmp = std::move(this->get_unexpected());
1020
            this->destroy_unexpected();
1021
1022
            try {
1023
                this->construct(std::move(other).get_value());
1024
            }
1025
            catch (...) {
1026
                this->construct_unexpected(std::move(tmp));
1027
                throw;
1028
            }
1029
        }
1030
0
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1031
#else
1032
    template <typename Other>
1033
    void assing_value_over_unexpected(Other&& other) noexcept
1034
    {
1035
        this->destroy_unexpected();
1036
        this->construct_value(std::forward<Other>(other).get_value());
1037
    }
1038
#endif
1039
1040
    template <typename Other>
1041
    void assign_unexpected_over_value(Other&& other) noexcept(
1042
        std::is_nothrow_constructible_v<
1043
            E,
1044
            decltype(std::forward<Other>(other).get_unexpected())>)
1045
103k
    {
1046
103k
        this->destroy_value();
1047
103k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
103k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.4k
    {
1046
11.4k
        this->destroy_value();
1047
11.4k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.4k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.4k
    {
1046
11.4k
        this->destroy_value();
1047
11.4k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.4k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.4k
    {
1046
11.4k
        this->destroy_value();
1047
11.4k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.4k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
22.9k
    {
1046
22.9k
        this->destroy_value();
1047
22.9k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
22.9k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
22.9k
    {
1046
22.9k
        this->destroy_value();
1047
22.9k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
22.9k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
22.9k
    {
1046
22.9k
        this->destroy_value();
1047
22.9k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
22.9k
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1049
};
1050
1051
template <typename E>
1052
struct SCN_TRIVIAL_ABI
1053
    expected_operations_base<void,
1054
                             E,
1055
                             std::enable_if_t<!std::is_trivially_copyable_v<E>>>
1056
    : expected_storage_base<void, E> {
1057
    using expected_storage_base<void, E>::expected_storage_base;
1058
1059
    expected_operations_base(const expected_operations_base& other) noexcept(
1060
        std::is_nothrow_copy_constructible_v<E>)
1061
        : expected_storage_base<void, E>(deferred_init_tag)
1062
    {
1063
        construct_common(other);
1064
    }
1065
    expected_operations_base(expected_operations_base&& other) noexcept(
1066
        std::is_nothrow_move_constructible_v<E>)
1067
        : expected_storage_base<void, E>(deferred_init_tag)
1068
    {
1069
        construct_common(std::move(other));
1070
    }
1071
1072
    expected_operations_base& operator=(const expected_operations_base& other)
1073
    // gcc 11 and lower evaluate noexcept in a weird context
1074
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1075
        noexcept(noexcept(
1076
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
1077
#else
1078
        noexcept(noexcept(assign_common(other)))
1079
#endif
1080
    {
1081
        assign_common(other);
1082
        return *this;
1083
    }
1084
    expected_operations_base& operator=(expected_operations_base&& other)
1085
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1086
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
1087
                              .assign_common(std::move(other))))
1088
#else
1089
        noexcept(noexcept(assign_common(std::move(other))))
1090
#endif
1091
    {
1092
        assign_common(std::move(other));
1093
        return *this;
1094
    }
1095
1096
    ~expected_operations_base() = default;
1097
1098
private:
1099
    template <typename Other>
1100
    void construct_common(Other&& other) noexcept(
1101
        noexcept(expected_storage_base<void, E>::construct_unexpected(
1102
            std::forward<Other>(other).get_unexpected())))
1103
    {
1104
        if (other.has_value()) {
1105
            this->construct();
1106
        }
1107
        else {
1108
            this->construct_unexpected(
1109
                std::forward<Other>(other).get_unexpected());
1110
        }
1111
    }
1112
1113
    template <typename Other>
1114
    void assign_common(Other&& other)
1115
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1116
        noexcept(
1117
            noexcept(SCN_DECLVAL(expected_operations_base&)
1118
                         .reassign_unexpected(std::forward<Other>(other))) &&
1119
            noexcept(
1120
                SCN_DECLVAL(expected_operations_base&)
1121
                    .assign_unexpected_over_value(std::forward<Other>(other))))
1122
#else
1123
        noexcept(
1124
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
1125
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
1126
#endif
1127
    {
1128
        if (this->has_value()) {
1129
            if (other.has_value()) {
1130
                return reassign_value();
1131
            }
1132
            return assign_unexpected_over_value(std::forward<Other>(other));
1133
        }
1134
1135
        if (other.has_value()) {
1136
            return assign_value_over_unexpected();
1137
        }
1138
        return reassign_unexpected(std::forward<Other>(other));
1139
    }
1140
1141
    void reassign_value() noexcept {}
1142
1143
    template <typename Other>
1144
    void reassign_unexpected(Other&& other) noexcept(
1145
        std::is_nothrow_assignable_v<
1146
            E,
1147
            decltype(std::forward<Other>(other).get_unexpected())>)
1148
    {
1149
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
1150
    }
1151
1152
    void assign_value_over_unexpected() noexcept
1153
    {
1154
        this->destroy_unexpected();
1155
        this->construct();
1156
    }
1157
1158
    template <typename Other>
1159
    void assign_unexpected_over_value(Other&& other) noexcept(
1160
        std::is_nothrow_constructible_v<
1161
            E,
1162
            decltype(std::forward<Other>(other).get_unexpected())>)
1163
    {
1164
        this->destroy_value();
1165
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1166
    }
1167
};
1168
1169
/*
1170
 * Base class trickery to conditionally mark copy and move
1171
 * constructors of an expected as =deleted.
1172
 *
1173
 * We need to do this, because otherwise utilities like
1174
 * std::is_copy_constructible wouldn't work for expected: the
1175
 * constructors need to be explicitly =deleted, not just cause a
1176
 * compiler error when trying to copy a value of a non-copyable
1177
 * type.
1178
 *
1179
 * Rationale for doing this with base classes is above.
1180
 */
1181
template <
1182
    typename T,
1183
    typename E,
1184
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1185
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E>),
1186
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1187
                        std::is_void_v<T>)&&std::is_move_constructible_v<E>)>
1188
struct expected_delete_ctor_base;
1189
1190
// Implementation for types that are both copy and move
1191
// constructible: Copy and move constructors are =defaulted
1192
template <typename T, typename E>
1193
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1194
    expected_delete_ctor_base() = default;
1195
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1196
        default;
1197
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1198
    ~expected_delete_ctor_base() = default;
1199
1200
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1201
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1202
};
1203
1204
// Implementation for types that are neither copy nor move
1205
// constructible: Copy and move constructors are =deleted
1206
template <typename T, typename E>
1207
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1208
    expected_delete_ctor_base() = default;
1209
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1210
        default;
1211
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1212
    ~expected_delete_ctor_base() = default;
1213
1214
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1215
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1216
};
1217
1218
// Implementation for types that are move constructible, but not
1219
// copy constructible Copy constructor is =deleted, but move
1220
// constructor is =defaulted
1221
template <typename T, typename E>
1222
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1223
    expected_delete_ctor_base() = default;
1224
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1225
        default;
1226
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1227
    ~expected_delete_ctor_base() = default;
1228
1229
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1230
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1231
};
1232
1233
template <typename T, typename E>
1234
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1235
    static_assert(dependent_false<T>::value,
1236
                  "Nonsensical type: copy constructible, but not move "
1237
                  "constructible");
1238
};
1239
1240
// Same as above, but for assignment
1241
template <
1242
    typename T,
1243
    typename E,
1244
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1245
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E> &&
1246
                       (std::is_copy_assignable_v<T> ||
1247
                        std::is_void_v<T>)&&std::is_copy_assignable_v<E>),
1248
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1249
                        std::is_void_v<T>)&&std::is_move_constructible_v<E> &&
1250
                       (std::is_move_assignable_v<T> ||
1251
                        std::is_void_v<T>)&&std::is_move_assignable_v<E>)>
1252
struct expected_delete_assign_base;
1253
1254
template <typename T, typename E>
1255
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1256
    expected_delete_assign_base() = default;
1257
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1258
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1259
    ~expected_delete_assign_base() = default;
1260
1261
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1262
        default;
1263
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1264
        default;
1265
};
1266
1267
template <typename T, typename E>
1268
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1269
    expected_delete_assign_base() = default;
1270
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1271
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1272
    ~expected_delete_assign_base() = default;
1273
1274
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1275
        delete;
1276
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1277
        delete;
1278
};
1279
1280
template <typename T, typename E>
1281
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1282
    expected_delete_assign_base() = default;
1283
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1284
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1285
    ~expected_delete_assign_base() = default;
1286
1287
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1288
        delete;
1289
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1290
        default;
1291
};
1292
1293
template <typename T, typename E>
1294
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1295
    static_assert(dependent_false<T>::value,
1296
                  "Nonsensical type: copy assignable, but not move "
1297
                  "assignable");
1298
};
1299
1300
struct non_default_ctor_tag_t {};
1301
1302
/*
1303
 * Same as above, but for the default constructor
1304
 *
1305
 * The constructor taking a non_default_ctor_tag_t is needed, to
1306
 * signal that we're not default constructing.
1307
 */
1308
template <typename T,
1309
          typename E,
1310
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1311
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1312
    constexpr expected_default_ctor_base() = default;
1313
    constexpr explicit expected_default_ctor_base(
1314
        non_default_ctor_tag_t) noexcept
1315
16.5M
    {
1316
16.5M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.4k
    {
1316
11.4k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
218k
    {
1316
218k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.4k
    {
1316
11.4k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.4k
    {
1316
11.4k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
129k
    {
1316
129k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
22.9k
    {
1316
22.9k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.54M
    {
1316
1.54M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
22.9k
    {
1316
22.9k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
22.9k
    {
1316
22.9k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
772k
    {
1316
772k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
299k
    {
1316
299k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.83M
    {
1316
1.83M
    }
scn::v4::detail::expected_default_ctor_base<long, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
2.66M
    {
1316
2.66M
    }
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
505k
    {
1316
505k
    }
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
3.66M
    {
1316
3.66M
    }
scn::v4::detail::expected_default_ctor_base<void, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
126k
    {
1316
126k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
121k
    {
1316
121k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
97.9k
    {
1316
97.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
203k
    {
1316
203k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
164k
    {
1316
164k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
758k
    {
1316
758k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
605k
    {
1316
605k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.51M
    {
1316
1.51M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.21M
    {
1316
1.21M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
1317
};
1318
template <typename T, typename E>
1319
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1320
    constexpr expected_default_ctor_base() = delete;
1321
    constexpr explicit expected_default_ctor_base(
1322
        non_default_ctor_tag_t) noexcept
1323
    {
1324
    }
1325
};
1326
1327
template <typename T>
1328
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1329
1330
template <typename T>
1331
struct is_expected_impl : std::false_type {};
1332
template <typename T, typename E>
1333
struct is_expected_impl<expected<T, E>> : std::true_type {};
1334
template <typename T>
1335
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1336
1337
template <typename Exp>
1338
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1339
1340
template <typename Exp>
1341
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1342
1343
template <
1344
    typename F,
1345
    typename... Args,
1346
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1347
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1348
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1349
12.7k
{
1350
12.7k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
12.7k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Line
Count
Source
1349
12.7k
{
1350
12.7k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
12.7k
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error const&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error const&)
1352
1353
// and_then
1354
1355
template <typename Exp,
1356
          typename F,
1357
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1358
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1359
                                                 *SCN_DECLVAL(Exp)))>
1360
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1361
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1362
    std::is_nothrow_constructible_v<Ret,
1363
                                    unexpect_t,
1364
                                    decltype(std::forward<Exp>(exp).error())>)
1365
{
1366
    static_assert(is_expected<Ret>::value, "F must return an expected");
1367
1368
    return SCN_LIKELY(exp.has_value())
1369
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1370
               : Ret(unexpect, std::forward<Exp>(exp).error());
1371
}
1372
template <typename Exp,
1373
          typename F,
1374
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1375
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1376
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1377
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1378
    std::is_nothrow_constructible_v<Ret,
1379
                                    unexpect_t,
1380
                                    decltype(std::forward<Exp>(exp).error())>)
1381
{
1382
    static_assert(is_expected<Ret>::value, "F must return an expected");
1383
1384
    return SCN_LIKELY(exp.has_value())
1385
               ? trivial_invoke(std::forward<F>(f))
1386
               : Ret(unexpect, std::forward<Exp>(exp).error());
1387
}
1388
1389
// or_else
1390
1391
template <typename Exp,
1392
          typename F,
1393
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1394
                                                 SCN_DECLVAL(Exp).error()))>
1395
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1396
    noexcept(trivial_invoke(std::forward<F>(f),
1397
                            std::forward<Exp>(exp).error())) &&
1398
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1399
{
1400
    static_assert(is_expected<Ret>::value, "F must return an expected");
1401
1402
    return SCN_LIKELY(exp.has_value())
1403
               ? Ret(std::forward<Exp>(exp))
1404
               : trivial_invoke(std::forward<F>(f),
1405
                                std::forward<Exp>(exp).error());
1406
}
1407
1408
// transform
1409
1410
template <typename Exp,
1411
          typename F,
1412
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1413
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1414
                                                 *SCN_DECLVAL(Exp)))>
1415
constexpr auto transform_impl(Exp&& exp, F&& f)
1416
{
1417
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1418
    if constexpr (std::is_void_v<Ret>) {
1419
        if (SCN_LIKELY(exp.has_value())) {
1420
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1421
            return result();
1422
        }
1423
        return result(unexpect, std::forward<Exp>(exp).error());
1424
    }
1425
    else {
1426
        return SCN_LIKELY(exp.has_value())
1427
                   ? result(trivial_invoke(std::forward<F>(f),
1428
                                           *std::forward<Exp>(exp)))
1429
                   : result(unexpect, std::forward<Exp>(exp).error());
1430
    }
1431
}
1432
template <typename Exp,
1433
          typename F,
1434
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1435
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1436
constexpr auto transform_impl(Exp&& exp, F&& f)
1437
{
1438
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1439
    if constexpr (std::is_void_v<Ret>) {
1440
        if (SCN_LIKELY(exp.has_value())) {
1441
            trivial_invoke(std::forward<F>(f));
1442
            return result();
1443
        }
1444
        return result(unexpect, std::forward<Exp>(exp).error());
1445
    }
1446
    else {
1447
        return SCN_LIKELY(exp.has_value())
1448
                   ? result(trivial_invoke(std::forward<F>(f)))
1449
                   : result(unexpect, std::forward<Exp>(exp).error());
1450
    }
1451
}
1452
1453
// transform_error
1454
1455
template <typename Exp,
1456
          typename F,
1457
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1458
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1459
                                                 SCN_DECLVAL(Exp).error()))>
1460
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1461
2.59M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
2.59M
    else {
1472
2.59M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
2.59M
        return SCN_LIKELY(exp.has_value())
1474
2.59M
                   ? result(*std::forward<Exp>(exp))
1475
2.59M
                   : result(unexpect,
1476
12.7k
                            trivial_invoke(std::forward<F>(f),
1477
12.7k
                                           std::forward<Exp>(exp).error()));
1478
2.59M
    }
1479
2.59M
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
121k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
121k
    else {
1472
121k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
121k
        return SCN_LIKELY(exp.has_value())
1474
121k
                   ? result(*std::forward<Exp>(exp))
1475
121k
                   : result(unexpect,
1476
2.25k
                            trivial_invoke(std::forward<F>(f),
1477
2.25k
                                           std::forward<Exp>(exp).error()));
1478
121k
    }
1479
121k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
758k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
758k
    else {
1472
758k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
758k
        return SCN_LIKELY(exp.has_value())
1474
758k
                   ? result(*std::forward<Exp>(exp))
1475
758k
                   : result(unexpect,
1476
2.33k
                            trivial_invoke(std::forward<F>(f),
1477
2.33k
                                           std::forward<Exp>(exp).error()));
1478
758k
    }
1479
758k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
203k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
203k
    else {
1472
203k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
203k
        return SCN_LIKELY(exp.has_value())
1474
203k
                   ? result(*std::forward<Exp>(exp))
1475
203k
                   : result(unexpect,
1476
3.46k
                            trivial_invoke(std::forward<F>(f),
1477
3.46k
                                           std::forward<Exp>(exp).error()));
1478
203k
    }
1479
203k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
1.51M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
1.51M
    else {
1472
1.51M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
1.51M
        return SCN_LIKELY(exp.has_value())
1474
1.51M
                   ? result(*std::forward<Exp>(exp))
1475
1.51M
                   : result(unexpect,
1476
4.66k
                            trivial_invoke(std::forward<F>(f),
1477
4.66k
                                           std::forward<Exp>(exp).error()));
1478
1.51M
    }
1479
1.51M
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
1480
template <typename Exp,
1481
          typename F,
1482
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1483
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1484
                                                 SCN_DECLVAL(Exp).error()))>
1485
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1486
{
1487
    if constexpr (std::is_void_v<Ret>) {
1488
        using result = expected<expected_value_type<Exp>, monostate>;
1489
        if (SCN_LIKELY(exp.has_value())) {
1490
            return result();
1491
        }
1492
1493
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1494
        return result(unexpect, monostate{});
1495
    }
1496
    else {
1497
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1498
        return SCN_LIKELY(exp.has_value())
1499
                   ? result()
1500
                   : result(unexpect,
1501
                            trivial_invoke(std::forward<F>(f),
1502
                                           std::forward<Exp>(exp).error()));
1503
    }
1504
}
1505
1506
template <class T, class E, class U, class G, class UR, class GR>
1507
using enable_from_other =
1508
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1509
                     std::is_constructible_v<E, GR> &&
1510
                     !std::is_constructible_v<T, expected<U, G>&> &&
1511
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1512
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1513
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1514
                     !std::is_convertible_v<expected<U, G>&, T> &&
1515
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1516
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1517
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1518
}  // namespace detail
1519
1520
/**
1521
 * \see `std::expected`
1522
 */
1523
template <typename T, typename E>
1524
class SCN_TRIVIAL_ABI expected
1525
    : private detail::expected_operations_base<T, E>,
1526
      private detail::expected_delete_ctor_base<T, E>,
1527
      private detail::expected_delete_assign_base<T, E>,
1528
      private detail::expected_default_ctor_base<T, E> {
1529
    using base = detail::expected_operations_base<T, E>;
1530
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1531
1532
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1533
                  "T must be void or Destructible");
1534
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1535
1536
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1537
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1538
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1539
1540
public:
1541
    using value_type = T;
1542
    using error_type = E;
1543
    using unexpected_type = unexpected<E>;
1544
1545
    template <typename U>
1546
    using rebind = expected<U, error_type>;
1547
1548
    // Special member functions are defaulted, implementations provided
1549
    // by base classes
1550
1551
9.81M
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
109k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
109k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
129k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
772k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
772k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
772k
    constexpr expected() = default;
scn::v4::expected<void, scn::v4::scan_error>::expected()
Line
Count
Source
1551
7.15M
    constexpr expected() = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
1552
1553
    constexpr expected(const expected&) = default;
1554
    constexpr expected(expected&&) = default;
1555
    constexpr expected& operator=(const expected&) = default;
1556
103k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.4k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.4k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.4k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
22.9k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
22.9k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
22.9k
    constexpr expected& operator=(expected&&) = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
1557
1558
    ~expected() = default;
1559
1560
    /**
1561
     * Construct an expected value.
1562
     * Intentionally non-explicit, to make constructing an expected
1563
     * value as transparent as possible.
1564
     */
1565
    template <typename U = value_type,
1566
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1567
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1568
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1569
15.9M
        : base(std::in_place, std::forward<U>(val)),
1570
15.9M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
15.9M
    {
1572
15.9M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1569
195k
        : base(std::in_place, std::forward<U>(val)),
1570
195k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
195k
    {
1572
195k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1569
117k
        : base(std::in_place, std::forward<U>(val)),
1570
117k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
117k
    {
1572
117k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1569
1.49M
        : base(std::in_place, std::forward<U>(val)),
1570
1.49M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.49M
    {
1572
1.49M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1569
749k
        : base(std::in_place, std::forward<U>(val)),
1570
749k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
749k
    {
1572
749k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
284k
        : base(std::in_place, std::forward<U>(val)),
1570
284k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
284k
    {
1572
284k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
1.80M
        : base(std::in_place, std::forward<U>(val)),
1570
1.80M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.80M
    {
1572
1.80M
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
475k
        : base(std::in_place, std::forward<U>(val)),
1570
475k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
475k
    {
1572
475k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
3.61M
        : base(std::in_place, std::forward<U>(val)),
1570
3.61M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
3.61M
    {
1572
3.61M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
119k
        : base(std::in_place, std::forward<U>(val)),
1570
119k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
119k
    {
1572
119k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1569
96.9k
        : base(std::in_place, std::forward<U>(val)),
1570
96.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
96.9k
    {
1572
96.9k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<char const*, scn::v4::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
199k
        : base(std::in_place, std::forward<U>(val)),
1570
199k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
199k
    {
1572
199k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1569
163k
        : base(std::in_place, std::forward<U>(val)),
1570
163k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
163k
    {
1572
163k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*, void>(char const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<long, scn::v4::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1569
2.56M
        : base(std::in_place, std::forward<U>(val)),
1570
2.56M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
2.56M
    {
1572
2.56M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1569
698
        : base(std::in_place, std::forward<U>(val)),
1570
698
          ctor_base(detail::non_default_ctor_tag_t{})
1571
698
    {
1572
698
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1569
1.39k
        : base(std::in_place, std::forward<U>(val)),
1570
1.39k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.39k
    {
1572
1.39k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
755k
        : base(std::in_place, std::forward<U>(val)),
1570
755k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
755k
    {
1572
755k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1569
605k
        : base(std::in_place, std::forward<U>(val)),
1570
605k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
605k
    {
1572
605k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
1.51M
        : base(std::in_place, std::forward<U>(val)),
1570
1.51M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.51M
    {
1572
1.51M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1569
1.21M
        : base(std::in_place, std::forward<U>(val)),
1570
1.21M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.21M
    {
1572
1.21M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1569
120
        : base(std::in_place, std::forward<U>(val)),
1570
120
          ctor_base(detail::non_default_ctor_tag_t{})
1571
120
    {
1572
120
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1569
240
        : base(std::in_place, std::forward<U>(val)),
1570
240
          ctor_base(detail::non_default_ctor_tag_t{})
1571
240
    {
1572
240
    }
Unexecuted instantiation: scn::v4::expected<long, scn::v4::scan_error>::expected<int, void>(int&&)
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::expected<wchar_t, void>(wchar_t&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
1573
1574
    /// Construct an expected value directly in-place
1575
    template <typename... Args,
1576
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1577
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1578
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1579
        : base(std::in_place, std::forward<Args>(args)...),
1580
          ctor_base(detail::non_default_ctor_tag_t{})
1581
    {
1582
    }
1583
1584
    template <typename G = E,
1585
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1586
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1587
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1588
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1589
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1590
    {
1591
    }
1592
    template <typename G = E,
1593
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1594
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1595
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1596
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1597
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1598
    {
1599
    }
1600
1601
    template <typename G = E,
1602
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1603
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1604
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1605
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1606
        : base(unexpect, std::move(e.error())),
1607
          ctor_base(detail::non_default_ctor_tag_t{})
1608
    {
1609
    }
1610
    template <typename G = E,
1611
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1612
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1613
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1614
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1615
567k
        : base(unexpect, std::move(e.error())),
1616
567k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
567k
    {
1618
567k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
11.4k
        : base(unexpect, std::move(e.error())),
1616
11.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.4k
    {
1618
11.4k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
22.9k
        : base(unexpect, std::move(e.error())),
1616
22.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
22.9k
    {
1618
22.9k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
11.4k
        : base(unexpect, std::move(e.error())),
1616
11.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.4k
    {
1618
11.4k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
11.4k
        : base(unexpect, std::move(e.error())),
1616
11.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.4k
    {
1618
11.4k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
11.4k
        : base(unexpect, std::move(e.error())),
1616
11.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.4k
    {
1618
11.4k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
22.9k
        : base(unexpect, std::move(e.error())),
1616
22.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
22.9k
    {
1618
22.9k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
45.8k
        : base(unexpect, std::move(e.error())),
1616
45.8k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
45.8k
    {
1618
45.8k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
22.9k
        : base(unexpect, std::move(e.error())),
1616
22.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
22.9k
    {
1618
22.9k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
22.9k
        : base(unexpect, std::move(e.error())),
1616
22.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
22.9k
    {
1618
22.9k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
22.9k
        : base(unexpect, std::move(e.error())),
1616
22.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
22.9k
    {
1618
22.9k
    }
_ZN3scn2v48expectedIlNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
103k
        : base(unexpect, std::move(e.error())),
1616
103k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
103k
    {
1618
103k
    }
_ZN3scn2v48expectedIPKcNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
25.0k
        : base(unexpect, std::move(e.error())),
1616
25.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
25.0k
    {
1618
25.0k
    }
_ZN3scn2v48expectedIPKwNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
50.9k
        : base(unexpect, std::move(e.error())),
1616
50.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
50.9k
    {
1618
50.9k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
12.2k
        : base(unexpect, std::move(e.error())),
1616
12.2k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
12.2k
    {
1618
12.2k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
25.4k
        : base(unexpect, std::move(e.error())),
1616
25.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
25.4k
    {
1618
25.4k
    }
_ZN3scn2v48expectedIvNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
126k
        : base(unexpect, std::move(e.error())),
1616
126k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
126k
    {
1618
126k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
2.25k
        : base(unexpect, std::move(e.error())),
1616
2.25k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.25k
    {
1618
2.25k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
972
        : base(unexpect, std::move(e.error())),
1616
972
          ctor_base(detail::non_default_ctor_tag_t{})
1617
972
    {
1618
972
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEC2ISL_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedIPKcNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
3.46k
        : base(unexpect, std::move(e.error())),
1616
3.46k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
3.46k
    {
1618
3.46k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
1.38k
        : base(unexpect, std::move(e.error())),
1616
1.38k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.38k
    {
1618
1.38k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEC2ISH_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISH_OT_EEvE4typeELPv0ETnPNSK_IXsr3stdE16is_convertible_vISM_SH_EEvE4typeELSQ_0EEEONS0_10unexpectedISL_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEC2ISD_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
2.33k
        : base(unexpect, std::move(e.error())),
1616
2.33k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.33k
    {
1618
2.33k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
932
        : base(unexpect, std::move(e.error())),
1616
932
          ctor_base(detail::non_default_ctor_tag_t{})
1617
932
    {
1618
932
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEC2ISO_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISO_OT_EEvE4typeELPv0ETnPNSR_IXsr3stdE16is_convertible_vIST_SO_EEvE4typeELSX_0EEEONS0_10unexpectedISS_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEC2ISI_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedIPKwNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
4.66k
        : base(unexpect, std::move(e.error())),
1616
4.66k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
4.66k
    {
1618
4.66k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
1.86k
        : base(unexpect, std::move(e.error())),
1616
1.86k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.86k
    {
1618
1.86k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEC2ISK_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISK_OT_EEvE4typeELPv0ETnPNSN_IXsr3stdE16is_convertible_vISP_SK_EEvE4typeELST_0EEEONS0_10unexpectedISO_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEEC2ISD_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEC2ISB_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
1619
1620
    /// Construct an unexpected value directly in-place
1621
    template <typename... Args,
1622
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1623
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1624
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1625
12.7k
        : base(unexpect, std::forward<Args>(args)...),
1626
12.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
12.7k
    {
1628
12.7k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
2.25k
        : base(unexpect, std::forward<Args>(args)...),
1626
2.25k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
2.25k
    {
1628
2.25k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
2.33k
        : base(unexpect, std::forward<Args>(args)...),
1626
2.33k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
2.33k
    {
1628
2.33k
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
3.46k
        : base(unexpect, std::forward<Args>(args)...),
1626
3.46k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
3.46k
    {
1628
3.46k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
4.66k
        : base(unexpect, std::forward<Args>(args)...),
1626
4.66k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
4.66k
    {
1628
4.66k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
1629
1630
    template <
1631
        typename U,
1632
        typename G,
1633
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1634
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1635
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1636
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1637
        std::is_nothrow_constructible_v<T, const U&> &&
1638
        std::is_nothrow_constructible_v<E, const G&>)
1639
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1640
    {
1641
        if (other.has_value()) {
1642
            this->construct(*other);
1643
        }
1644
        else {
1645
            this->construct_unexpected(other.error());
1646
        }
1647
    }
1648
    template <
1649
        typename U,
1650
        typename G,
1651
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1652
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1653
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1654
    constexpr expected(const expected<U, G>& other) noexcept(
1655
        std::is_nothrow_constructible_v<T, const U&> &&
1656
        std::is_nothrow_constructible_v<E, const G&>)
1657
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1658
    {
1659
        if (other.has_value()) {
1660
            this->construct(*other);
1661
        }
1662
        else {
1663
            this->construct_unexpected(other.error());
1664
        }
1665
    }
1666
1667
    template <typename U,
1668
              typename G,
1669
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1670
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1671
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1672
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1673
        std::is_nothrow_constructible_v<T, U&&> &&
1674
        std::is_nothrow_constructible_v<E, G&&>)
1675
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1676
    {
1677
        if (other.has_value()) {
1678
            this->construct(std::move(*other));
1679
        }
1680
        else {
1681
            this->construct_unexpected(std::move(other.error()));
1682
        }
1683
    }
1684
    template <typename U,
1685
              typename G,
1686
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1687
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1688
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1689
    constexpr expected(expected<U, G>&& other) noexcept(
1690
        std::is_nothrow_constructible_v<T, U&&> &&
1691
        std::is_nothrow_constructible_v<E, G&&>)
1692
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1693
    {
1694
        if (other.has_value()) {
1695
            this->construct(std::move(*other));
1696
        }
1697
        else {
1698
            this->construct_unexpected(std::move(other.error()));
1699
        }
1700
    }
1701
1702
    template <typename U = value_type,
1703
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1704
    expected& operator=(U&& val) noexcept(
1705
        noexcept(assign_value(std::forward<U>(val))))
1706
    {
1707
        assign_value(std::forward<U>(val));
1708
        return *this;
1709
    }
1710
1711
    expected& operator=(const unexpected_type& unex) noexcept(
1712
        noexcept(assign_unexpected(unex)))
1713
    {
1714
        assign_unexpected(unex);
1715
        return *this;
1716
    }
1717
    expected& operator=(unexpected_type&& unex) noexcept(
1718
        noexcept(assign_unexpected(std::move(unex))))
1719
    {
1720
        assign_unexpected(std::move(unex));
1721
        return *this;
1722
    }
1723
1724
    /// Destroys the contained value, and then initializes the expected
1725
    /// value directly in-place.
1726
    template <typename... Args,
1727
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1728
    decltype(auto) emplace(Args&&... args) noexcept(
1729
        std::is_nothrow_constructible_v<T, Args...>)
1730
    {
1731
        emplace_impl(std::forward<Args>(args)...);
1732
        if constexpr (!std::is_void_v<T>) {
1733
            return this->get_value();
1734
        }
1735
    }
1736
1737
    using base::has_value;
1738
    constexpr explicit operator bool() const noexcept
1739
25.5M
    {
1740
25.5M
        return has_value();
1741
25.5M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
218k
    {
1740
218k
        return has_value();
1741
218k
    }
scn::v4::expected<long, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.56M
    {
1740
3.56M
        return has_value();
1741
3.56M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
109k
    {
1740
109k
        return has_value();
1741
109k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
109k
    {
1740
109k
        return has_value();
1741
109k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
129k
    {
1740
129k
        return has_value();
1741
129k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
129k
    {
1740
129k
        return has_value();
1741
129k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.54M
    {
1740
1.54M
        return has_value();
1741
1.54M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
772k
    {
1740
772k
        return has_value();
1741
772k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
772k
    {
1740
772k
        return has_value();
1741
772k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
772k
    {
1740
772k
        return has_value();
1741
772k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
772k
    {
1740
772k
        return has_value();
1741
772k
    }
scn::v4::expected<void, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
8.27M
    {
1740
8.27M
        return has_value();
1741
8.27M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::operator bool() const
scn::v4::expected<char const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
505k
    {
1740
505k
        return has_value();
1741
505k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.66M
    {
1740
3.66M
        return has_value();
1741
3.66M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
97.9k
    {
1740
97.9k
        return has_value();
1741
97.9k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
299k
    {
1740
299k
        return has_value();
1741
299k
    }
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
164k
    {
1740
164k
        return has_value();
1741
164k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
605k
    {
1740
605k
        return has_value();
1741
605k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.83M
    {
1740
1.83M
        return has_value();
1741
1.83M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.21M
    {
1740
1.21M
        return has_value();
1741
1.21M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
1742
1743
    /// Get the unexpected value, if one is contained in *this
1744
    constexpr error_type& error() & noexcept
1745
432k
    {
1746
432k
        SCN_EXPECT(!has_value());
1747
432k
        return this->get_unexpected().error();
1748
432k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
22.9k
    {
1746
22.9k
        SCN_EXPECT(!has_value());
1747
22.9k
        return this->get_unexpected().error();
1748
22.9k
    }
scn::v4::expected<long, scn::v4::scan_error>::error() &
Line
Count
Source
1745
103k
    {
1746
103k
        SCN_EXPECT(!has_value());
1747
103k
        return this->get_unexpected().error();
1748
103k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
11.4k
    {
1746
11.4k
        SCN_EXPECT(!has_value());
1747
11.4k
        return this->get_unexpected().error();
1748
11.4k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
45.8k
    {
1746
45.8k
        SCN_EXPECT(!has_value());
1747
45.8k
        return this->get_unexpected().error();
1748
45.8k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
22.9k
    {
1746
22.9k
        SCN_EXPECT(!has_value());
1747
22.9k
        return this->get_unexpected().error();
1748
22.9k
    }
scn::v4::expected<void, scn::v4::scan_error>::error() &
Line
Count
Source
1745
95.1k
    {
1746
95.1k
        SCN_EXPECT(!has_value());
1747
95.1k
        return this->get_unexpected().error();
1748
95.1k
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::error() &
scn::v4::expected<char const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
28.5k
    {
1746
28.5k
        SCN_EXPECT(!has_value());
1747
28.5k
        return this->get_unexpected().error();
1748
28.5k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
55.6k
    {
1746
55.6k
        SCN_EXPECT(!has_value());
1747
55.6k
        return this->get_unexpected().error();
1748
55.6k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
972
    {
1746
972
        SCN_EXPECT(!has_value());
1747
972
        return this->get_unexpected().error();
1748
972
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
14.5k
    {
1746
14.5k
        SCN_EXPECT(!has_value());
1747
14.5k
        return this->get_unexpected().error();
1748
14.5k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
1.38k
    {
1746
1.38k
        SCN_EXPECT(!has_value());
1747
1.38k
        return this->get_unexpected().error();
1748
1.38k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
932
    {
1746
932
        SCN_EXPECT(!has_value());
1747
932
        return this->get_unexpected().error();
1748
932
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
27.8k
    {
1746
27.8k
        SCN_EXPECT(!has_value());
1747
27.8k
        return this->get_unexpected().error();
1748
27.8k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
1.86k
    {
1746
1.86k
        SCN_EXPECT(!has_value());
1747
1.86k
        return this->get_unexpected().error();
1748
1.86k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
1749
    constexpr const error_type& error() const& noexcept
1750
0
    {
1751
0
        SCN_EXPECT(!has_value());
1752
0
        return this->get_unexpected().error();
1753
0
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
1754
    constexpr error_type&& error() && noexcept
1755
12.7k
    {
1756
12.7k
        SCN_EXPECT(!has_value());
1757
12.7k
        return std::move(this->get_unexpected().error());
1758
12.7k
    }
Unexecuted instantiation: scn::v4::expected<void, scn::v4::scan_error>::error() &&
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
2.25k
    {
1756
2.25k
        SCN_EXPECT(!has_value());
1757
2.25k
        return std::move(this->get_unexpected().error());
1758
2.25k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
2.33k
    {
1756
2.33k
        SCN_EXPECT(!has_value());
1757
2.33k
        return std::move(this->get_unexpected().error());
1758
2.33k
    }
scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
3.46k
    {
1756
3.46k
        SCN_EXPECT(!has_value());
1757
3.46k
        return std::move(this->get_unexpected().error());
1758
3.46k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
4.66k
    {
1756
4.66k
        SCN_EXPECT(!has_value());
1757
4.66k
        return std::move(this->get_unexpected().error());
1758
4.66k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
1759
    constexpr const error_type&& error() const&& noexcept
1760
    {
1761
        SCN_EXPECT(!has_value());
1762
        return std::move(this->get_unexpected().error());
1763
    }
1764
1765
    /// Get the expected value, if one is contained in *this
1766
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1767
    constexpr U& value() & noexcept
1768
24.6M
    {
1769
24.6M
        SCN_EXPECT(has_value());
1770
24.6M
        return this->get_value();
1771
24.6M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
195k
    {
1769
195k
        SCN_EXPECT(has_value());
1770
195k
        return this->get_value();
1771
195k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEE5valueIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1768
3.42M
    {
1769
3.42M
        SCN_EXPECT(has_value());
1770
3.42M
        return this->get_value();
1771
3.42M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
305k
    {
1769
305k
        SCN_EXPECT(has_value());
1770
305k
        return this->get_value();
1771
305k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
305k
    {
1769
305k
        SCN_EXPECT(has_value());
1770
305k
        return this->get_value();
1771
305k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
117k
    {
1769
117k
        SCN_EXPECT(has_value());
1770
117k
        return this->get_value();
1771
117k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
364k
    {
1769
364k
        SCN_EXPECT(has_value());
1770
364k
        return this->get_value();
1771
364k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
1.49M
    {
1769
1.49M
        SCN_EXPECT(has_value());
1770
1.49M
        return this->get_value();
1771
1.49M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
2.27M
    {
1769
2.27M
        SCN_EXPECT(has_value());
1770
2.27M
        return this->get_value();
1771
2.27M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
2.27M
    {
1769
2.27M
        SCN_EXPECT(has_value());
1770
2.27M
        return this->get_value();
1771
2.27M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
749k
    {
1769
749k
        SCN_EXPECT(has_value());
1770
749k
        return this->get_value();
1771
749k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
2.27M
    {
1769
2.27M
        SCN_EXPECT(has_value());
1770
2.27M
        return this->get_value();
1771
2.27M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedIwNS0_10scan_errorEE5valueIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
119k
    {
1769
119k
        SCN_EXPECT(has_value());
1770
119k
        return this->get_value();
1771
119k
    }
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
755k
    {
1769
755k
        SCN_EXPECT(has_value());
1770
755k
        return this->get_value();
1771
755k
    }
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
476k
    {
1769
476k
        SCN_EXPECT(has_value());
1770
476k
        return this->get_value();
1771
476k
    }
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
3.61M
    {
1769
3.61M
        SCN_EXPECT(has_value());
1770
3.61M
        return this->get_value();
1771
3.61M
    }
_ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
199k
    {
1769
199k
        SCN_EXPECT(has_value());
1770
199k
        return this->get_value();
1771
199k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
96.9k
    {
1769
96.9k
        SCN_EXPECT(has_value());
1770
96.9k
        return this->get_value();
1771
96.9k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEE5valueISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
284k
    {
1769
284k
        SCN_EXPECT(has_value());
1770
284k
        return this->get_value();
1771
284k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
163k
    {
1769
163k
        SCN_EXPECT(has_value());
1770
163k
        return this->get_value();
1771
163k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEE5valueISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSL_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEE5valueISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
605k
    {
1769
605k
        SCN_EXPECT(has_value());
1770
605k
        return this->get_value();
1771
605k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEE5valueISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSS_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEE5valueISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
1.80M
    {
1769
1.80M
        SCN_EXPECT(has_value());
1770
1.80M
        return this->get_value();
1771
1.80M
    }
_ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
1.51M
    {
1769
1.51M
        SCN_EXPECT(has_value());
1770
1.51M
        return this->get_value();
1771
1.51M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
1.21M
    {
1769
1.21M
        SCN_EXPECT(has_value());
1770
1.21M
        return this->get_value();
1771
1.21M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEE5valueISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSO_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEE5valueISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEE5valueISC_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
1772
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1773
    constexpr const U& value() const& noexcept
1774
0
    {
1775
0
        SCN_EXPECT(has_value());
1776
0
        return this->get_value();
1777
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1778
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1779
    constexpr U&& value() && noexcept
1780
    {
1781
        SCN_EXPECT(has_value());
1782
        return std::move(this->get_value());
1783
    }
1784
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1785
    constexpr const U&& value() const&& noexcept
1786
    {
1787
        SCN_EXPECT(has_value());
1788
        return std::move(this->get_value());
1789
    }
1790
1791
    /// Get the expected value, if one is contained in *this
1792
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1793
    constexpr U& operator*() & noexcept
1794
7.01M
    {
1795
7.01M
        return value();
1796
7.01M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
195k
    {
1795
195k
        return value();
1796
195k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1794
3.42M
    {
1795
3.42M
        return value();
1796
3.42M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
117k
    {
1795
117k
        return value();
1796
117k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
1.49M
    {
1795
1.49M
        return value();
1796
1.49M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
749k
    {
1795
749k
        return value();
1796
749k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
48.1k
    {
1795
48.1k
        return value();
1796
48.1k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
80.6k
    {
1795
80.6k
        return value();
1796
80.6k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
299k
    {
1795
299k
        return value();
1796
299k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
599k
    {
1795
599k
        return value();
1796
599k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEdeISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
1797
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1798
    constexpr const U& operator*() const& noexcept
1799
0
    {
1800
0
        return value();
1801
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1802
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1803
    constexpr U&& operator*() && noexcept
1804
9.80M
    {
1805
9.80M
        return std::move(value());
1806
9.80M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedIwNS0_10scan_errorEEdeIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
119k
    {
1805
119k
        return std::move(value());
1806
119k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
755k
    {
1805
755k
        return std::move(value());
1806
755k
    }
_ZNO3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
395k
    {
1805
395k
        return std::move(value());
1806
395k
    }
_ZNO3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
3.01M
    {
1805
3.01M
        return std::move(value());
1806
3.01M
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
199k
    {
1805
199k
        return std::move(value());
1806
199k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
96.9k
    {
1805
96.9k
        return std::move(value());
1806
96.9k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEdeISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSP_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
236k
    {
1805
236k
        return std::move(value());
1806
236k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
163k
    {
1805
163k
        return std::move(value());
1806
163k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEdeISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSL_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEdeISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
605k
    {
1805
605k
        return std::move(value());
1806
605k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEdeISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSS_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEdeISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
1.50M
    {
1805
1.50M
        return std::move(value());
1806
1.50M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
1.51M
    {
1805
1.51M
        return std::move(value());
1806
1.51M
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
1.21M
    {
1805
1.21M
        return std::move(value());
1806
1.21M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEdeISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSO_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
1807
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1808
    constexpr const U&& operator*() const&& noexcept
1809
    {
1810
        return std::move(value());
1811
    }
1812
1813
    constexpr value_type* operator->() noexcept
1814
7.78M
    {
1815
7.78M
        return &value();
1816
7.78M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
305k
    {
1815
305k
        return &value();
1816
305k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
305k
    {
1815
305k
        return &value();
1816
305k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
364k
    {
1815
364k
        return &value();
1816
364k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.27M
    {
1815
2.27M
        return &value();
1816
2.27M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.27M
    {
1815
2.27M
        return &value();
1816
2.27M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.27M
    {
1815
2.27M
        return &value();
1816
2.27M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
1817
    constexpr const value_type* operator->() const noexcept
1818
    {
1819
        return &value();
1820
    }
1821
1822
    /// Returns the expected value if *this contains one, otherwise
1823
    /// returns default_value
1824
    template <typename U,
1825
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1826
                                          std::is_convertible_v<U, T>>>
1827
    constexpr T value_or(U&& default_value) const& noexcept(
1828
        std::is_nothrow_copy_constructible_v<T> &&
1829
        std::is_nothrow_constructible_v<T, U&&>)
1830
    {
1831
        if (has_value()) {
1832
            return value();
1833
        }
1834
        return std::forward<U>(default_value);
1835
    }
1836
    template <typename U,
1837
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1838
                                          std::is_convertible_v<U, T>>>
1839
    constexpr T value_or(U&& default_value) && noexcept(
1840
        std::is_nothrow_move_constructible_v<T> &&
1841
        std::is_nothrow_constructible_v<T, U&&>)
1842
    {
1843
        if (has_value()) {
1844
            return std::move(value());
1845
        }
1846
        return std::forward<U>(default_value);
1847
    }
1848
1849
    template <typename G,
1850
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1851
                                          std::is_convertible_v<G, E>>>
1852
    constexpr E error_or(G&& default_error) const& noexcept(
1853
        std::is_nothrow_copy_constructible_v<E> &&
1854
        std::is_nothrow_constructible_v<E, G&&>)
1855
    {
1856
        if (!has_value()) {
1857
            return error();
1858
        }
1859
        return std::forward<G>(default_error);
1860
    }
1861
    template <typename G,
1862
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1863
                                          std::is_convertible_v<G, E>>>
1864
    constexpr E error_or(G&& default_error) && noexcept(
1865
        std::is_nothrow_move_constructible_v<E> &&
1866
        std::is_nothrow_constructible_v<E, G&&>)
1867
    {
1868
        if (!has_value()) {
1869
            return std::move(error());
1870
        }
1871
        return std::forward<G>(default_error);
1872
    }
1873
1874
    template <typename F>
1875
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1876
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1877
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1878
    {
1879
        return detail::and_then_impl(*this, std::forward<F>(f));
1880
    }
1881
    template <typename F>
1882
    constexpr auto and_then(F&& f) const& noexcept(
1883
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1884
                                       std::forward<F>(f))))
1885
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1886
    {
1887
        return detail::and_then_impl(*this, std::forward<F>(f));
1888
    }
1889
    template <typename F>
1890
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1891
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1892
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1893
    {
1894
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1895
    }
1896
    template <typename F>
1897
    constexpr auto and_then(F&& f) const&& noexcept(
1898
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1899
                                       std::forward<F>(f))))
1900
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1901
    {
1902
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1903
    }
1904
1905
    template <typename F>
1906
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1907
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1908
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1909
    {
1910
        return detail::or_else_impl(*this, std::forward<F>(f));
1911
    }
1912
    template <typename F>
1913
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1914
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1915
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1916
    {
1917
        return detail::or_else_impl(*this, std::forward<F>(f));
1918
    }
1919
    template <typename F>
1920
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1921
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1922
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1923
    {
1924
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1925
    }
1926
    template <typename F>
1927
    constexpr auto or_else(F&& f) const&& noexcept(
1928
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1929
                                      std::forward<F>(f))))
1930
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1931
    {
1932
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1933
    }
1934
1935
    template <typename F>
1936
    constexpr auto transform(
1937
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1938
    {
1939
        return detail::transform_impl(*this, std::forward<F>(f));
1940
    }
1941
    template <typename F>
1942
    constexpr auto transform(F&& f)
1943
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1944
    {
1945
        return detail::transform_impl(*this, std::forward<F>(f));
1946
    }
1947
    template <typename F>
1948
    constexpr auto transform(
1949
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1950
    {
1951
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1952
    }
1953
    template <typename F>
1954
    constexpr auto transform(F&& f)
1955
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1956
    {
1957
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1958
    }
1959
1960
    template <typename F>
1961
    constexpr auto transform_error(
1962
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1963
                                                          std::forward<F>(f)))
1964
0
    {
1965
0
        return detail::transform_error_impl(*this, std::forward<F>(f));
1966
0
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
1967
    template <typename F>
1968
    constexpr auto transform_error(F&& f)
1969
        const& -> decltype(detail::transform_error_impl(*this,
1970
                                                        std::forward<F>(f)))
1971
    {
1972
        return detail::transform_error_impl(*this, std::forward<F>(f));
1973
    }
1974
    template <typename F>
1975
    constexpr auto transform_error(
1976
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1977
                                                           std::forward<F>(f)))
1978
2.59M
    {
1979
2.59M
        return detail::transform_error_impl(std::move(*this),
1980
2.59M
                                            std::forward<F>(f));
1981
2.59M
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
121k
    {
1979
121k
        return detail::transform_error_impl(std::move(*this),
1980
121k
                                            std::forward<F>(f));
1981
121k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
758k
    {
1979
758k
        return detail::transform_error_impl(std::move(*this),
1980
758k
                                            std::forward<F>(f));
1981
758k
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
203k
    {
1979
203k
        return detail::transform_error_impl(std::move(*this),
1980
203k
                                            std::forward<F>(f));
1981
203k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
1.51M
    {
1979
1.51M
        return detail::transform_error_impl(std::move(*this),
1980
1.51M
                                            std::forward<F>(f));
1981
1.51M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
1982
    template <typename F>
1983
    constexpr auto transform_error(F&& f)
1984
        const&& -> decltype(detail::transform_error_impl(*this,
1985
                                                         std::forward<F>(f)))
1986
    {
1987
        return detail::transform_error_impl(std::move(*this),
1988
                                            std::forward<F>(f));
1989
    }
1990
1991
private:
1992
    template <typename... Args>
1993
    void emplace_impl(Args&&... args) noexcept(
1994
        std::is_nothrow_constructible_v<T, Args&&...>)
1995
    {
1996
        if (this->has_value()) {
1997
            this->destroy_value();
1998
            this->construct(std::forward<Args>(args)...);
1999
        }
2000
        else {
2001
#if SCN_HAS_EXCEPTIONS
2002
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
2003
                auto tmp = std::move(error());
2004
                this->destroy_unexpected();
2005
2006
                try {
2007
                    this->construct(std::forward<Args>(args)...);
2008
                }
2009
                catch (...) {
2010
                    this->construct_unexpected(std::move(tmp));
2011
                    throw;
2012
                }
2013
            }
2014
            else {
2015
                this->construct(std::forward<Args>(args)...);
2016
            }
2017
#else
2018
            this->destroy_unexpected();
2019
            this->construct(std::forward<Args>(args)...);
2020
#endif
2021
        }
2022
    }
2023
2024
    template <typename Value>
2025
    void assign_value(Value&& val) noexcept(
2026
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
2027
                                        Value&&> &&
2028
        std::is_nothrow_assignable_v<T, Value&&>)
2029
    {
2030
        if (has_value()) {
2031
            this->get_value() = std::forward<Value>(val);
2032
            return;
2033
        }
2034
2035
#if SCN_HAS_EXCEPTIONS
2036
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
2037
            this->destroy_unexpected();
2038
            this->construct(std::forward<Value>(val));
2039
        }
2040
        else {
2041
            auto tmp = std::move(this->get_unexpected());
2042
            this->destroy_unexpected();
2043
2044
            try {
2045
                this->construct(std::forward<Value>(val));
2046
            }
2047
            catch (...) {
2048
                this->construct_unexpected(std::move(tmp));
2049
            }
2050
        }
2051
#else
2052
        this->destroy_unexpected();
2053
        this->construct(std::forward<Value>(val));
2054
#endif
2055
    }
2056
2057
    template <typename Unexpected>
2058
    void assign_unexpected(Unexpected&& unex) noexcept(
2059
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
2060
        std::is_nothrow_assignable_v<E, Unexpected&&>)
2061
    {
2062
        if (!has_value()) {
2063
            this->get_unexpected() = std::forward<Unexpected>(unex);
2064
            return;
2065
        }
2066
2067
        this->destroy_value();
2068
        this->construct_unexpected(std::forward<Unexpected>(unex));
2069
    }
2070
};
2071
2072
/////////////////////////////////////////////////////////////////
2073
// <ranges> implementation
2074
/////////////////////////////////////////////////////////////////
2075
2076
/**
2077
 * Contains a very minimal `<ranges>` implementation.
2078
 *
2079
 * This is a heavily stripped-down and adapted version of NanoRange:
2080
 * https://github.com/tcbrindle/NanoRange.
2081
 *
2082
 * NanoRange is provided under the Boost license.
2083
 * Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
2084
 */
2085
namespace ranges {
2086
2087
namespace detail {
2088
using namespace scn::detail;
2089
2090
template <typename T>
2091
constexpr auto decay_copy(T&& t) noexcept(
2092
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
2093
94.6M
{
2094
94.6M
    return SCN_FWD(t);
2095
94.6M
}
_ZN3scn2v46ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
2093
2.06M
{
2094
2.06M
    return SCN_FWD(t);
2095
2.06M
}
_ZN3scn2v46ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
2093
2.49M
{
2094
2.49M
    return SCN_FWD(t);
2095
2.49M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
5.17M
{
2094
5.17M
    return SCN_FWD(t);
2095
5.17M
}
_ZN3scn2v46ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
2093
11.9M
{
2094
11.9M
    return SCN_FWD(t);
2095
11.9M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
72.9M
{
2094
72.9M
    return SCN_FWD(t);
2095
72.9M
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS1_18default_sentinel_tEEEu7__decayIT_EOS5_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINSt3__111__wrap_iterIPcEEEEu7__decayIT_EOS8_
2096
2097
template <bool>
2098
struct conditional {
2099
    template <typename T, typename>
2100
    using type = T;
2101
};
2102
2103
template <>
2104
struct conditional<false> {
2105
    template <typename, typename U>
2106
    using type = U;
2107
};
2108
2109
template <bool B, typename T, typename U>
2110
using conditional_t = typename conditional<B>::template type<T, U>;
2111
2112
template <template <class...> class AliasT, typename... Args>
2113
auto exists_helper(long) -> std::false_type;
2114
2115
template <template <class...> class AliasT,
2116
          typename... Args,
2117
          typename = AliasT<Args...>>
2118
auto exists_helper(int) -> std::true_type;
2119
2120
template <template <class...> class AliasT, typename... Args>
2121
inline constexpr bool exists_v =
2122
    decltype(exists_helper<AliasT, Args...>(0))::value;
2123
2124
template <typename, typename...>
2125
auto test_requires_fn(long) -> std::false_type;
2126
2127
template <typename R,
2128
          typename... Args,
2129
          typename = decltype(&R::template requires_<Args...>)>
2130
auto test_requires_fn(int) -> std::true_type;
2131
2132
template <typename R, typename... Args>
2133
inline constexpr bool requires_ =
2134
    decltype(test_requires_fn<R, Args...>(0))::value;
2135
2136
template <bool Expr>
2137
using requires_expr = std::enable_if_t<Expr, int>;
2138
}  // namespace detail
2139
2140
template <typename>
2141
inline constexpr bool enable_borrowed_range = false;
2142
2143
namespace detail {
2144
template <typename T>
2145
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
2146
2147
struct boolean_testable_concept {
2148
    template <typename T>
2149
    auto requires_(T&& t)
2150
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
2151
};
2152
2153
template <typename T>
2154
inline constexpr bool boolean_testable =
2155
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
2156
}  // namespace detail
2157
2158
namespace detail {
2159
struct weakly_equality_comparable_with_concept {
2160
    template <typename T, typename U>
2161
    auto requires_(const std::remove_reference_t<T>& t,
2162
                   const std::remove_reference_t<U>& u)
2163
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
2164
                    requires_expr<boolean_testable<decltype(t != u)>>{},
2165
                    requires_expr<boolean_testable<decltype(u == t)>>{},
2166
                    requires_expr<boolean_testable<decltype(u != t)>>{});
2167
};
2168
2169
template <typename T, typename U>
2170
inline constexpr bool weakly_equality_comparable_with =
2171
    requires_<weakly_equality_comparable_with_concept, T, U>;
2172
}  // namespace detail
2173
2174
template <typename T>
2175
inline constexpr bool equality_comparable =
2176
    detail::weakly_equality_comparable_with<T, T>;
2177
2178
namespace detail {
2179
struct equality_comparable_with_concept {
2180
    template <typename, typename>
2181
    static auto test(long) -> std::false_type;
2182
2183
    template <typename T, typename U>
2184
    static auto test(int)
2185
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2186
#if 0
2187
            common_reference_with<const std::remove_reference_t<T>&,
2188
                                  const std::remove_reference_t<U>&> &&
2189
            equality_comparable<
2190
                common_reference_t<const std::remove_reference_t<T>&,
2191
                                   const std::remove_reference_t<U>&>> &&
2192
#endif
2193
                                weakly_equality_comparable_with<T, U>,
2194
                            std::true_type>;
2195
};
2196
}  // namespace detail
2197
2198
template <typename T, typename U>
2199
inline constexpr bool equality_comparable_with =
2200
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2201
2202
namespace detail {
2203
struct partially_ordered_with_concept {
2204
    template <typename T, typename U>
2205
    auto requires_(const std::remove_reference_t<T>& t,
2206
                   const std::remove_reference_t<U>& u)
2207
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2208
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2209
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2210
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2211
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2212
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2213
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2214
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2215
};
2216
2217
template <typename T, typename U>
2218
inline constexpr bool partially_ordered_with =
2219
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2220
}  // namespace detail
2221
2222
template <typename T>
2223
inline constexpr bool totally_ordered =
2224
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2225
2226
namespace detail {
2227
struct totally_ordered_with_concept {
2228
    template <typename, typename>
2229
    static auto test(long) -> std::false_type;
2230
2231
    template <typename T, typename U>
2232
    static auto test(int)
2233
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2234
                                equality_comparable_with<T, U> &&
2235
#if 0
2236
                                totally_ordered<common_reference_t<
2237
                                    const std::remove_reference_t<T>&,
2238
                                    const std::remove_reference_t<U>&>> &&
2239
#endif
2240
                                partially_ordered_with<T, U>,
2241
                            std::true_type>;
2242
};
2243
}  // namespace detail
2244
2245
template <typename T, typename U>
2246
inline constexpr bool totally_ordered_with =
2247
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2248
2249
namespace detail {
2250
struct movable_concept {
2251
    template <typename T>
2252
    static auto test(long) -> std::false_type;
2253
2254
    template <typename T>
2255
    static auto test(int) -> std::enable_if_t<
2256
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2257
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2258
        std::true_type>;
2259
};
2260
}  // namespace detail
2261
2262
template <typename T>
2263
inline constexpr bool movable =
2264
    decltype(detail::movable_concept::test<T>(0))::value;
2265
2266
namespace detail {
2267
struct copyable_concept {
2268
    template <typename>
2269
    static auto test(long) -> std::false_type;
2270
2271
    template <typename T>
2272
    static auto test(int)
2273
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2274
                                std::is_copy_assignable_v<T>,
2275
                            std::true_type>;
2276
};
2277
}  // namespace detail
2278
2279
template <typename T>
2280
inline constexpr bool copyable =
2281
    decltype(detail::copyable_concept::test<T>(0))::value;
2282
2283
template <typename T>
2284
inline constexpr bool semiregular =
2285
    copyable<T> && std::is_default_constructible_v<T>;
2286
2287
template <typename T>
2288
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2289
2290
template <typename>
2291
struct incrementable_traits;
2292
2293
namespace detail {
2294
struct empty {};
2295
2296
template <typename T>
2297
struct with_difference_type {
2298
    using difference_type = T;
2299
};
2300
2301
template <typename, typename = void>
2302
struct incrementable_traits_helper {};
2303
2304
// Workaround for GCC silliness: void* has no difference_type
2305
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2306
// error Can we formulate the concept differently to avoid the need for this
2307
// hack?
2308
template <>
2309
struct incrementable_traits_helper<void*> {};
2310
2311
template <typename T>
2312
struct incrementable_traits_helper<T*>
2313
    : detail::conditional_t<std::is_object_v<T>,
2314
                            with_difference_type<std::ptrdiff_t>,
2315
                            empty> {};
2316
2317
template <class I>
2318
struct incrementable_traits_helper<const I>
2319
    : incrementable_traits<std::decay_t<I>> {};
2320
2321
template <typename, typename = void>
2322
struct has_member_difference_type : std::false_type {};
2323
2324
template <typename T>
2325
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2326
    : std::true_type {};
2327
2328
template <typename T>
2329
constexpr bool has_member_difference_type_v =
2330
    has_member_difference_type<T>::value;
2331
2332
template <typename T>
2333
struct incrementable_traits_helper<
2334
    T,
2335
    std::enable_if_t<has_member_difference_type_v<T>>> {
2336
    using difference_type = typename T::difference_type;
2337
};
2338
2339
template <typename T, typename = void>
2340
struct subtraction_result_type {
2341
    using type = void;
2342
};
2343
template <typename T>
2344
struct subtraction_result_type<
2345
    T,
2346
    std::void_t<decltype(std::declval<const T&>() -
2347
                         std::declval<const T&>())>> {
2348
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2349
};
2350
2351
template <typename T>
2352
inline constexpr bool enable_incrtraits_subtractable =
2353
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2354
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2355
2356
template <typename T>
2357
struct incrementable_traits_helper<
2358
    T,
2359
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2360
    : with_difference_type<
2361
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2362
}  // namespace detail
2363
2364
template <typename T>
2365
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2366
2367
template <typename T>
2368
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2369
2370
template <typename>
2371
struct readable_traits;
2372
2373
namespace detail {
2374
template <typename T>
2375
struct with_value_type {
2376
    using value_type = T;
2377
};
2378
2379
template <typename, typename = void>
2380
struct readable_traits_helper {};
2381
2382
template <typename T>
2383
struct readable_traits_helper<T*>
2384
    : detail::conditional_t<std::is_object_v<T>,
2385
                            with_value_type<std::remove_cv_t<T>>,
2386
                            empty> {};
2387
2388
template <typename I>
2389
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2390
    : readable_traits<std::decay_t<I>> {};
2391
2392
template <typename I>
2393
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2394
    : readable_traits<std::decay_t<I>> {};
2395
2396
template <typename T, typename V = typename T::value_type>
2397
struct member_value_type
2398
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2399
2400
template <typename T, typename E = typename T::element_type>
2401
struct member_element_type
2402
    : detail::conditional_t<std::is_object_v<E>,
2403
                            with_value_type<std::remove_cv_t<E>>,
2404
                            empty> {};
2405
2406
template <typename T>
2407
using member_value_type_t = typename T::value_type;
2408
2409
template <typename T>
2410
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2411
2412
template <typename T>
2413
using member_element_type_t = typename T::element_type;
2414
2415
template <typename T>
2416
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2417
2418
template <typename T>
2419
struct readable_traits_helper<T,
2420
                              std::enable_if_t<has_member_value_type_v<T> &&
2421
                                               !has_member_element_type_v<T>>>
2422
    : member_value_type<T> {};
2423
2424
template <typename T>
2425
struct readable_traits_helper<T,
2426
                              std::enable_if_t<has_member_element_type_v<T> &&
2427
                                               !has_member_value_type_v<T>>>
2428
    : member_element_type<T> {};
2429
2430
// A type which has both value_type and element_type members must specialise
2431
// readable_traits to tell us which one to prefer -- see
2432
// https://github.com/ericniebler/stl2/issues/562
2433
template <typename T>
2434
struct readable_traits_helper<T,
2435
                              std::enable_if_t<has_member_element_type_v<T> &&
2436
                                               has_member_value_type_v<T>>> {};
2437
}  // namespace detail
2438
2439
template <typename T>
2440
struct readable_traits : detail::readable_traits_helper<T> {};
2441
2442
template <typename T>
2443
using iter_value_t = typename readable_traits<T>::value_type;
2444
2445
namespace detail {
2446
template <typename T>
2447
using with_reference = T&;
2448
2449
struct can_reference_concept {
2450
    template <typename T>
2451
    auto requires_() -> with_reference<T>;
2452
};
2453
2454
template <typename T>
2455
inline constexpr bool can_reference =
2456
    detail::requires_<can_reference_concept, T>;
2457
2458
struct dereferencable_concept {
2459
    template <typename T>
2460
    auto requires_(T& t)
2461
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2462
};
2463
2464
template <typename T>
2465
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2466
2467
// GCC and Clang allow dereferencing void* as an extension.
2468
// Let's kill that off now.
2469
2470
template <>
2471
inline constexpr bool dereferenceable<void*> = false;
2472
}  // namespace detail
2473
2474
using std::bidirectional_iterator_tag;
2475
using std::forward_iterator_tag;
2476
using std::input_iterator_tag;
2477
using std::output_iterator_tag;
2478
using std::random_access_iterator_tag;
2479
2480
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2481
    __cpp_lib_ranges >= 201911L
2482
using std::contiguous_iterator_tag;
2483
#else
2484
struct contiguous_iterator_tag : random_access_iterator_tag {};
2485
#endif
2486
2487
template <typename T>
2488
struct iterator_category;
2489
2490
namespace detail {
2491
template <typename T, typename = void>
2492
struct iterator_category_ {};
2493
template <typename T>
2494
struct iterator_category_<T*>
2495
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2496
template <typename T>
2497
struct iterator_category_<const T> : iterator_category<T> {};
2498
template <typename T>
2499
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2500
    using type = typename T::iterator_category;
2501
};
2502
}  // namespace detail
2503
2504
template <typename T>
2505
struct iterator_category : detail::iterator_category_<T> {};
2506
template <typename T>
2507
using iterator_category_t = typename iterator_category<T>::type;
2508
2509
namespace detail {
2510
2511
template <typename T, typename = void>
2512
struct legacy_iterator_category : iterator_category<T> {};
2513
2514
template <typename T>
2515
struct legacy_iterator_category<
2516
    T,
2517
    std::enable_if_t<
2518
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2519
    using type = random_access_iterator_tag;
2520
};
2521
2522
template <typename T>
2523
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2524
2525
}  // namespace detail
2526
2527
template <typename T>
2528
using iter_reference_t =
2529
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2530
2531
namespace detail {
2532
2533
struct readable_concept {
2534
    template <typename In>
2535
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2536
                                 std::declval<iter_reference_t<In>>());
2537
    // std::declval<iter_rvalue_reference_t<In>>());
2538
2539
    template <typename>
2540
    static auto test(long) -> std::false_type;
2541
2542
    template <typename In>
2543
    static auto test(int)
2544
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2545
#if 0
2546
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2547
            common_reference_with<iter_reference_t<In>&&,
2548
                                  iter_rvalue_reference_t<In>&&> &&
2549
            common_reference_with<iter_rvalue_reference_t<In>&&,
2550
                                  const iter_value_t<In>&>,
2551
#endif
2552
                            std::true_type>;
2553
};
2554
2555
}  // namespace detail
2556
2557
template <typename In>
2558
inline constexpr bool readable =
2559
    decltype(detail::readable_concept::test<In>(0))::value;
2560
2561
namespace detail {
2562
2563
struct writable_concept {
2564
    template <typename Out, typename T>
2565
    auto requires_(Out&& o, T&& t)
2566
        -> decltype(*o = std::forward<T>(t),
2567
                    *std::forward<Out>(o) = std::forward<T>(t),
2568
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2569
                        std::forward<T>(t),
2570
                    const_cast<const iter_reference_t<Out>&&>(
2571
                        *std::forward<Out>(o)) = std::forward<T>(t));
2572
};
2573
2574
}  // namespace detail
2575
2576
template <typename Out, typename T>
2577
inline constexpr bool writable =
2578
    detail::requires_<detail::writable_concept, Out, T>;
2579
2580
namespace detail {
2581
2582
template <typename T>
2583
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2584
2585
template <typename T>
2586
inline constexpr bool is_signed_integer_like =
2587
    std::is_integral_v<T> && std::is_signed_v<T>;
2588
2589
struct weakly_incrementable_concept {
2590
    template <typename I>
2591
    auto requires_(I i)
2592
        -> decltype(std::declval<iter_difference_t<I>>(),
2593
                    requires_expr<
2594
                        is_signed_integer_like<iter_difference_t<I>>>{},
2595
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2596
                    i++);
2597
};
2598
2599
}  // namespace detail
2600
2601
template <typename I>
2602
inline constexpr bool weakly_incrementable =
2603
    std::is_default_constructible_v<I> && movable<I> &&
2604
    detail::requires_<detail::weakly_incrementable_concept, I>;
2605
2606
namespace detail {
2607
2608
struct incrementable_concept {
2609
    template <typename I>
2610
    auto requires_(I i)
2611
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2612
};
2613
2614
}  // namespace detail
2615
2616
template <typename I>
2617
inline constexpr bool incrementable =
2618
    regular<I> && weakly_incrementable<I> &&
2619
    detail::requires_<detail::incrementable_concept, I>;
2620
2621
namespace detail {
2622
2623
struct input_or_output_iterator_concept {
2624
    template <typename I>
2625
    auto requires_(I i)
2626
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2627
};
2628
2629
}  // namespace detail
2630
2631
template <typename I>
2632
inline constexpr bool input_or_output_iterator =
2633
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2634
    weakly_incrementable<I>;
2635
2636
template <typename S, typename I>
2637
inline constexpr bool sentinel_for =
2638
    semiregular<S> && input_or_output_iterator<I> &&
2639
    detail::weakly_equality_comparable_with<S, I>;
2640
2641
template <typename S, typename I>
2642
inline constexpr bool disable_sized_sentinel = false;
2643
2644
namespace detail {
2645
2646
struct sized_sentinel_for_concept {
2647
    template <typename S, typename I>
2648
    auto requires_(const S& s, const I& i)
2649
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2650
                                                 iter_difference_t<I>>>{},
2651
                    requires_expr<std::is_same_v<decltype(i - s),
2652
                                                 iter_difference_t<I>>>{});
2653
};
2654
2655
}  // namespace detail
2656
2657
template <typename S, typename I>
2658
inline constexpr bool sized_sentinel_for =
2659
    sentinel_for<S, I> &&
2660
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2661
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2662
2663
// This is a hack, but I'm fed up with my tests breaking because GCC
2664
// has a silly extension
2665
template <typename S>
2666
inline constexpr bool sized_sentinel_for<S, void*> = false;
2667
2668
template <typename I>
2669
inline constexpr bool sized_sentinel_for<void*, I> = false;
2670
2671
template <>
2672
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2673
2674
namespace detail {
2675
2676
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2677
struct input_iterator_concept {
2678
    template <typename I>
2679
    auto requires_() -> iterator_category_t<I>;
2680
2681
    template <typename>
2682
    static auto test(long) -> std::false_type;
2683
2684
    template <typename I>
2685
    static auto test(int) -> std::enable_if_t<
2686
        input_or_output_iterator<I> && readable<I> &&
2687
            detail::requires_<input_iterator_concept, I> &&
2688
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2689
        std::true_type>;
2690
};
2691
2692
}  // namespace detail
2693
2694
template <typename I>
2695
inline constexpr bool input_iterator =
2696
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2697
2698
namespace detail {
2699
2700
struct output_iterator_concept {
2701
    template <typename I, typename T>
2702
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2703
};
2704
2705
}  // namespace detail
2706
2707
template <typename I, typename T>
2708
inline constexpr bool output_iterator =
2709
    input_or_output_iterator<I> && writable<I, T> &&
2710
    detail::requires_<detail::output_iterator_concept, I, T>;
2711
2712
namespace detail {
2713
2714
struct forward_iterator_concept {
2715
    template <typename>
2716
    static auto test(long) -> std::false_type;
2717
2718
    template <typename I>
2719
    static auto test(int) -> std::enable_if_t<
2720
        input_iterator<I> &&
2721
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2722
            incrementable<I> && sentinel_for<I, I>,
2723
        std::true_type>;
2724
};
2725
2726
}  // namespace detail
2727
2728
template <typename I>
2729
inline constexpr bool forward_iterator =
2730
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2731
2732
namespace detail {
2733
2734
struct bidirectional_iterator_concept {
2735
    template <typename I>
2736
    auto requires_(I i)
2737
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2738
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2739
2740
    template <typename>
2741
    static auto test(long) -> std::false_type;
2742
2743
    template <typename I>
2744
    static auto test(int) -> std::enable_if_t<
2745
        forward_iterator<I> &&
2746
            std::is_base_of_v<bidirectional_iterator_tag,
2747
                              iterator_category_t<I>> &&
2748
            detail::requires_<bidirectional_iterator_concept, I>,
2749
        std::true_type>;
2750
};
2751
2752
}  // namespace detail
2753
2754
template <typename I>
2755
inline constexpr bool bidirectional_iterator =
2756
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2757
2758
namespace detail {
2759
2760
struct random_access_iterator_concept {
2761
    template <typename>
2762
    static auto test(long) -> std::false_type;
2763
2764
    template <typename I>
2765
    static auto test(int) -> std::enable_if_t<
2766
        bidirectional_iterator<I> &&
2767
            std::is_base_of_v<random_access_iterator_tag,
2768
                              iterator_category_t<I>> &&
2769
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2770
            detail::requires_<random_access_iterator_concept, I>,
2771
        std::true_type>;
2772
2773
    template <typename I>
2774
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2775
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2776
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2777
#ifndef _MSC_VER
2778
                    requires_expr<std::is_same_v<decltype(n + j),
2779
                                                 I>>{},  // FIXME: MSVC doesn't
2780
                                                         // like this when I =
2781
                                                         // int*
2782
#endif
2783
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2784
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2785
                    requires_expr<
2786
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2787
};
2788
2789
}  // namespace detail
2790
2791
template <typename I>
2792
inline constexpr bool random_access_iterator =
2793
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2794
2795
namespace detail {
2796
2797
struct contiguous_iterator_concept {
2798
    template <typename>
2799
    static auto test(long) -> std::false_type;
2800
2801
    template <typename I>
2802
    static auto test(int) -> std::enable_if_t<
2803
        random_access_iterator<I> &&
2804
            /*std::is_base_of_v<contiguous_iterator_tag,
2805
                              iterator_category_t<I>> &&*/
2806
            detail::can_make_address_from_iterator<I> &&
2807
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2808
            std::is_same_v<iter_value_t<I>,
2809
                           remove_cvref_t<iter_reference_t<I>>>,
2810
        std::true_type>;
2811
};
2812
2813
}  // namespace detail
2814
2815
template <typename I>
2816
inline constexpr bool contiguous_iterator =
2817
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2818
2819
namespace detail::begin_ {
2820
2821
template <typename T>
2822
void begin(T&) = delete;
2823
template <typename T>
2824
void begin(const T&) = delete;
2825
2826
struct fn {
2827
private:
2828
    template <typename T,
2829
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2830
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2831
                  nullptr>
2832
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2833
2834
    template <typename T,
2835
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2836
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2837
        -> decltype(t + 0)
2838
    {
2839
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2840
        return t + 0;
2841
    }
2842
2843
    template <typename T>
2844
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2845
        noexcept(decay_copy(SCN_FWD(t).begin())))
2846
        -> std::enable_if_t<
2847
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2848
            decltype(decay_copy(SCN_FWD(t).begin()))>
2849
11.4M
    {
2850
11.4M
        return decay_copy(t.begin());
2851
11.4M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
23.7k
    {
2850
23.7k
        return decay_copy(t.begin());
2851
23.7k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
414k
    {
2850
414k
        return decay_copy(t.begin());
2851
414k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
993k
    {
2850
993k
        return decay_copy(t.begin());
2851
993k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
11.4k
    {
2850
11.4k
        return decay_copy(t.begin());
2851
11.4k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
246k
    {
2850
246k
        return decay_copy(t.begin());
2851
246k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
117k
    {
2850
117k
        return decay_copy(t.begin());
2851
117k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
47.5k
    {
2850
47.5k
        return decay_copy(t.begin());
2851
47.5k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
3.04M
    {
2850
3.04M
        return decay_copy(t.begin());
2851
3.04M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
4.28M
    {
2850
4.28M
        return decay_copy(t.begin());
2851
4.28M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
22.9k
    {
2850
22.9k
        return decay_copy(t.begin());
2851
22.9k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
1.52M
    {
2850
1.52M
        return decay_copy(t.begin());
2851
1.52M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
749k
    {
2850
749k
        return decay_copy(t.begin());
2851
749k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
2852
2853
    template <typename T>
2854
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2855
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2856
        -> std::enable_if_t<
2857
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2858
            decltype(decay_copy(begin(SCN_FWD(t))))>
2859
    {
2860
        return decay_copy(begin(SCN_FWD(t)));
2861
    }
2862
2863
public:
2864
    template <typename T>
2865
    constexpr auto operator()(T&& t) const
2866
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2867
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2868
11.4M
    {
2869
11.4M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
11.4M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
23.7k
    {
2869
23.7k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
23.7k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
414k
    {
2869
414k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
414k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
993k
    {
2869
993k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
993k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
11.4k
    {
2869
11.4k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
11.4k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
246k
    {
2869
246k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
246k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
117k
    {
2869
117k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
117k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
47.5k
    {
2869
47.5k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
47.5k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
3.04M
    {
2869
3.04M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
3.04M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
4.28M
    {
2869
4.28M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
4.28M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
22.9k
    {
2869
22.9k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
22.9k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
1.52M
    {
2869
1.52M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
1.52M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
749k
    {
2869
749k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
749k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
2871
};
2872
2873
}  // namespace detail::begin_
2874
2875
inline constexpr auto begin = detail::begin_::fn{};
2876
2877
namespace detail::end_ {
2878
2879
template <typename T>
2880
void end(T&) = delete;
2881
template <typename T>
2882
void end(const T&) = delete;
2883
2884
struct fn {
2885
private:
2886
    template <typename T,
2887
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2888
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2889
                  nullptr>
2890
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2891
2892
    template <typename T,
2893
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2894
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2895
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2896
    {
2897
        return t + std::extent_v<remove_cvref_t<T>>;
2898
    }
2899
2900
    template <typename T,
2901
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2902
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2903
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2904
        noexcept(decay_copy(SCN_FWD(t).end())))
2905
        -> std::enable_if_t<sentinel_for<S, I>,
2906
                            decltype(decay_copy(SCN_FWD(t).end()))>
2907
80.6M
    {
2908
80.6M
        return decay_copy(SCN_FWD(t).end());
2909
80.6M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
438k
    {
2908
438k
        return decay_copy(SCN_FWD(t).end());
2909
438k
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
195k
    {
2908
195k
        return decay_copy(SCN_FWD(t).end());
2909
195k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
258k
    {
2908
258k
        return decay_copy(SCN_FWD(t).end());
2909
258k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
4.42M
    {
2908
4.42M
        return decay_copy(SCN_FWD(t).end());
2909
4.42M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
117k
    {
2908
117k
        return decay_copy(SCN_FWD(t).end());
2909
117k
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
3.09M
    {
2908
3.09M
        return decay_copy(SCN_FWD(t).end());
2909
3.09M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
1.49M
    {
2908
1.49M
        return decay_copy(SCN_FWD(t).end());
2909
1.49M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
1.54M
    {
2908
1.54M
        return decay_copy(SCN_FWD(t).end());
2909
1.54M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
68.3M
    {
2908
68.3M
        return decay_copy(SCN_FWD(t).end());
2909
68.3M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
749k
    {
2908
749k
        return decay_copy(SCN_FWD(t).end());
2909
749k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
2910
2911
    template <typename T,
2912
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2913
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2914
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2915
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2916
    {
2917
        return decay_copy(end(SCN_FWD(t)));
2918
    }
2919
2920
public:
2921
    template <typename T>
2922
    constexpr auto operator()(T&& t) const
2923
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2924
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2925
80.6M
    {
2926
80.6M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
80.6M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
438k
    {
2926
438k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
438k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
195k
    {
2926
195k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
195k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
258k
    {
2926
258k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
258k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
4.42M
    {
2926
4.42M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
4.42M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
117k
    {
2926
117k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
117k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
3.09M
    {
2926
3.09M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
3.09M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
1.49M
    {
2926
1.49M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
1.49M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
1.54M
    {
2926
1.54M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
1.54M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
68.3M
    {
2926
68.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
68.3M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
749k
    {
2926
749k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
749k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
2928
};
2929
2930
}  // namespace detail::end_
2931
2932
inline constexpr auto end = detail::end_::fn{};
2933
2934
namespace detail {
2935
struct range_concept {
2936
    template <typename T>
2937
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2938
};
2939
}  // namespace detail
2940
2941
template <typename T>
2942
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2943
2944
template <typename T>
2945
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2946
2947
template <typename R>
2948
using sentinel_t =
2949
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2950
2951
template <typename R>
2952
using range_difference_t =
2953
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2954
2955
template <typename R>
2956
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2957
2958
template <typename R>
2959
using range_reference_t =
2960
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2961
2962
namespace detail {
2963
template <typename, typename = void>
2964
inline constexpr bool is_object_pointer_v = false;
2965
template <typename P>
2966
inline constexpr bool
2967
    is_object_pointer_v<P,
2968
                        std::enable_if_t<std::is_pointer_v<P> &&
2969
                                         std::is_object_v<iter_value_t<P>>>> =
2970
        true;
2971
2972
namespace data_ {
2973
2974
struct fn {
2975
private:
2976
    template <typename T,
2977
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2978
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2979
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2980
5.34M
    {
2981
5.34M
        return t.data();
2982
5.34M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
218k
    {
2981
218k
        return t.data();
2982
218k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
1.54M
    {
2981
1.54M
        return t.data();
2982
1.54M
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
797k
    {
2981
797k
        return t.data();
2982
797k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
2.78M
    {
2981
2.78M
        return t.data();
2982
2.78M
    }
2983
2984
    template <typename T>
2985
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2986
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2987
        -> std::enable_if_t<
2988
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2989
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2990
0
    {
2991
0
        return scn::ranges::begin(SCN_FWD(t));
2992
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<0ul>)
2993
2994
public:
2995
    template <typename T>
2996
    constexpr auto operator()(T&& t) const
2997
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2998
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2999
5.34M
    {
3000
5.34M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
5.34M
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
218k
    {
3000
218k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
218k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
1.54M
    {
3000
1.54M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
1.54M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
797k
    {
3000
797k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
797k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
2.78M
    {
3000
2.78M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
2.78M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
3002
};
3003
3004
}  // namespace data_
3005
}  // namespace detail
3006
3007
inline constexpr auto data = detail::data_::fn{};
3008
3009
template <typename T>
3010
inline constexpr bool disable_sized_range = false;
3011
3012
namespace detail::size_ {
3013
3014
template <typename T>
3015
void size(T&&) = delete;
3016
template <typename T>
3017
void size(T&) = delete;
3018
3019
struct fn {
3020
private:
3021
    template <typename T, std::size_t N>
3022
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
3023
    {
3024
        return N;
3025
    }
3026
3027
    template <typename T, std::size_t N>
3028
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
3029
    {
3030
        return N;
3031
    }
3032
3033
    template <typename T,
3034
              typename I = decltype(decay_copy(std::declval<T>().size()))>
3035
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3036
        noexcept(decay_copy(SCN_FWD(t).size())))
3037
        -> std::enable_if_t<std::is_integral_v<I> &&
3038
                                !disable_sized_range<remove_cvref_t<T>>,
3039
                            I>
3040
2.49M
    {
3041
2.49M
        return decay_copy(SCN_FWD(t).size());
3042
2.49M
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
218k
    {
3041
218k
        return decay_copy(SCN_FWD(t).size());
3042
218k
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
1.54M
    {
3041
1.54M
        return decay_copy(SCN_FWD(t).size());
3042
1.54M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
96.8k
    {
3041
96.8k
        return decay_copy(SCN_FWD(t).size());
3042
96.8k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
634k
    {
3041
634k
        return decay_copy(SCN_FWD(t).size());
3042
634k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
3043
3044
    template <typename T,
3045
              typename I = decltype(decay_copy(size(std::declval<T>())))>
3046
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3047
        noexcept(decay_copy(size(SCN_FWD(t)))))
3048
        -> std::enable_if_t<std::is_integral_v<I> &&
3049
                                !disable_sized_range<remove_cvref_t<T>>,
3050
                            I>
3051
    {
3052
        return decay_copy(size(SCN_FWD(t)));
3053
    }
3054
3055
    template <typename T,
3056
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
3057
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
3058
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
3059
                                                             SCN_DECLVAL(I)))>
3060
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
3061
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
3062
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
3063
                                sized_sentinel_for<S, I> && forward_iterator<I>,
3064
                            D>
3065
    {
3066
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
3067
    }
3068
3069
public:
3070
    template <typename T>
3071
    constexpr auto operator()(T&& t) const
3072
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
3073
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
3074
2.49M
    {
3075
2.49M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
2.49M
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
218k
    {
3075
218k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
218k
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
1.54M
    {
3075
1.54M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
1.54M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
96.8k
    {
3075
96.8k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
96.8k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
634k
    {
3075
634k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
634k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
3077
};
3078
3079
}  // namespace detail::size_
3080
3081
inline constexpr auto size = detail::size_::fn{};
3082
3083
namespace detail {
3084
namespace ssize_ {
3085
struct fn {
3086
private:
3087
    template <typename T>
3088
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
3089
                                                  sizeof(std::ptrdiff_t),
3090
                                              std::ptrdiff_t,
3091
                                              range_difference_t<T>>;
3092
3093
    template <typename T>
3094
    static constexpr auto impl(T&& t) noexcept(
3095
        noexcept(ranges::size(std::forward<T>(t))))
3096
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
3097
0
    {
3098
0
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3099
0
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
3100
3101
public:
3102
    template <typename T>
3103
    constexpr auto operator()(T&& t) const
3104
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
3105
            -> decltype(fn::impl(std::forward<T>(t)))
3106
0
    {
3107
0
        return fn::impl(std::forward<T>(t));
3108
0
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
3109
};
3110
}  // namespace ssize_
3111
}  // namespace detail
3112
3113
inline constexpr auto ssize = detail::ssize_::fn{};
3114
3115
namespace detail::empty_ {
3116
struct fn {
3117
private:
3118
    template <typename T>
3119
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3120
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
3121
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
3122
    {
3123
        return static_cast<bool>(SCN_FWD(t).empty());
3124
    }
3125
3126
    template <typename T>
3127
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3128
        noexcept(ranges::size(SCN_FWD(t)) == 0))
3129
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
3130
    {
3131
        return ranges::size(SCN_FWD(t)) == 0;
3132
    }
3133
3134
    template <typename T,
3135
              typename I = decltype(ranges::begin(std::declval<T>()))>
3136
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
3137
        noexcept(ranges::begin(t) == ranges::end(t)))
3138
        -> std::enable_if_t<forward_iterator<I>,
3139
                            decltype(ranges::begin(t) == ranges::end(t))>
3140
    {
3141
        return ranges::begin(t) == ranges::end(t);
3142
    }
3143
3144
public:
3145
    template <typename T>
3146
    constexpr auto operator()(T&& t) const
3147
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
3148
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
3149
    {
3150
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
3151
    }
3152
};
3153
}  // namespace detail::empty_
3154
3155
inline constexpr auto empty = detail::empty_::fn{};
3156
3157
/**
3158
 * \see `std::ranges::borrowed_range`
3159
 */
3160
template <typename T>
3161
inline constexpr bool borrowed_range =
3162
    range<T> && (std::is_lvalue_reference_v<T> ||
3163
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
3164
3165
namespace detail {
3166
struct sized_range_concept {
3167
    template <typename T>
3168
    auto requires_(T& t) -> decltype(ranges::size(t));
3169
};
3170
}  // namespace detail
3171
3172
template <typename T>
3173
inline constexpr bool sized_range =
3174
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
3175
    detail::requires_<detail::sized_range_concept, T>;
3176
3177
namespace detail {
3178
struct output_range_concept {
3179
    template <typename, typename>
3180
    static auto test(long) -> std::false_type;
3181
3182
    template <typename R, typename T>
3183
    static auto test(int)
3184
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3185
                            std::true_type>;
3186
};
3187
}  // namespace detail
3188
3189
template <typename R, typename T>
3190
inline constexpr bool output_range =
3191
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3192
3193
namespace detail {
3194
struct input_range_concept {
3195
    template <typename>
3196
    static auto test(long) -> std::false_type;
3197
3198
    template <typename T>
3199
    static auto test(int)
3200
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3201
                            std::true_type>;
3202
};
3203
}  // namespace detail
3204
3205
template <typename T>
3206
inline constexpr bool input_range =
3207
    decltype(detail::input_range_concept::test<T>(0))::value;
3208
3209
namespace detail {
3210
struct forward_range_concept {
3211
    template <typename>
3212
    static auto test(long) -> std::false_type;
3213
3214
    template <typename T>
3215
    static auto test(int)
3216
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3217
                            std::true_type>;
3218
};
3219
}  // namespace detail
3220
3221
template <typename T>
3222
inline constexpr bool forward_range =
3223
    decltype(detail::forward_range_concept::test<T>(0))::value;
3224
3225
namespace detail {
3226
struct bidirectional_range_concept {
3227
    template <typename>
3228
    static auto test(long) -> std::false_type;
3229
3230
    template <typename T>
3231
    static auto test(int)
3232
        -> std::enable_if_t<forward_range<T> &&
3233
                                bidirectional_iterator<iterator_t<T>>,
3234
                            std::true_type>;
3235
};
3236
}  // namespace detail
3237
3238
template <typename T>
3239
inline constexpr bool bidirectional_range =
3240
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3241
3242
namespace detail {
3243
struct random_access_range_concept {
3244
    template <typename>
3245
    static auto test(long) -> std::false_type;
3246
3247
    template <typename T>
3248
    static auto test(int)
3249
        -> std::enable_if_t<bidirectional_range<T> &&
3250
                                random_access_iterator<iterator_t<T>>,
3251
                            std::true_type>;
3252
};
3253
}  // namespace detail
3254
3255
template <typename T>
3256
inline constexpr bool random_access_range =
3257
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3258
3259
namespace detail {
3260
// FIXME: Not to spec
3261
// We only require random_access_iterator, not contiguous_iterator
3262
// This is so that vector::iterator, string::iterator etc can model
3263
// contiguous_range.
3264
// If we do range-v3-style deep integration with iterator_traits then
3265
// this could be fixed
3266
struct contiguous_range_concept {
3267
    template <typename>
3268
    static auto test(long) -> std::false_type;
3269
3270
    template <typename T>
3271
    static auto test(int) -> std::enable_if_t<
3272
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3273
                                   * &&
3274
                                   */
3275
            detail::requires_<contiguous_range_concept, T>,
3276
        std::true_type>;
3277
3278
    template <typename T>
3279
    auto requires_(T& t)
3280
        -> decltype(requires_expr<std::is_same_v<
3281
                        decltype(ranges::data(t)),
3282
                        std::add_pointer_t<range_reference_t<T>>>>{});
3283
};
3284
}  // namespace detail
3285
3286
template <typename R>
3287
inline constexpr bool contiguous_range =
3288
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3289
3290
namespace detail {
3291
struct common_range_concept {
3292
    template <typename>
3293
    static auto test(long) -> std::false_type;
3294
3295
    template <typename T>
3296
    static auto test(int)
3297
        -> std::enable_if_t<range<T> &&
3298
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3299
                            std::true_type>;
3300
};
3301
}  // namespace detail
3302
3303
template <typename T>
3304
inline constexpr bool common_range =
3305
    decltype(detail::common_range_concept::test<T>(0))::value;
3306
3307
/**
3308
 * \see `std::ranges::dangling`
3309
 */
3310
struct dangling {
3311
    constexpr dangling() noexcept = default;
3312
3313
    template <typename... Args>
3314
    constexpr dangling(Args&&...) noexcept
3315
    {
3316
    }
3317
};
3318
3319
/**
3320
 * \see `std::ranges::borrowed_iterator_t`
3321
 */
3322
template <typename R>
3323
using borrowed_iterator_t =
3324
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3325
3326
template <typename D>
3327
class view_interface {
3328
    static_assert(std::is_class<D>::value, "");
3329
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3330
3331
private:
3332
    constexpr D& derived() noexcept
3333
3.57M
    {
3334
3.57M
        return static_cast<D&>(*this);
3335
3.57M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3333
797k
    {
3334
797k
        return static_cast<D&>(*this);
3335
797k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3333
2.78M
    {
3334
2.78M
        return static_cast<D&>(*this);
3335
2.78M
    }
3336
3337
    constexpr const D& derived() const noexcept
3338
1.76M
    {
3339
1.76M
        return static_cast<const D&>(*this);
3340
1.76M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3338
218k
    {
3339
218k
        return static_cast<const D&>(*this);
3340
218k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3338
1.54M
    {
3339
1.54M
        return static_cast<const D&>(*this);
3340
1.54M
    }
3341
3342
public:
3343
    template <typename R = D>
3344
    [[nodiscard]] constexpr auto empty()
3345
        -> std::enable_if_t<forward_range<R>, bool>
3346
    {
3347
        return ranges::begin(derived()) == ranges::end(derived());
3348
    }
3349
3350
    template <typename R = D>
3351
    [[nodiscard]] constexpr auto empty() const
3352
        -> std::enable_if_t<forward_range<const R>, bool>
3353
    {
3354
        return ranges::begin(derived()) == ranges::end(derived());
3355
    }
3356
3357
    template <typename R = D,
3358
              typename = decltype(ranges::empty(std::declval<R&>()))>
3359
    constexpr explicit operator bool()
3360
    {
3361
        return !ranges::empty(derived());
3362
    }
3363
3364
    template <typename R = D,
3365
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3366
    constexpr explicit operator bool() const
3367
    {
3368
        return !ranges::empty(derived());
3369
    }
3370
3371
    template <typename R = D,
3372
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3373
    constexpr auto data()
3374
3.57M
    {
3375
3.57M
        return detail::to_address(ranges::begin(derived()));
3376
3.57M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3374
797k
    {
3375
797k
        return detail::to_address(ranges::begin(derived()));
3376
797k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3374
2.78M
    {
3375
2.78M
        return detail::to_address(ranges::begin(derived()));
3376
2.78M
    }
3377
3378
    template <typename R = D,
3379
              typename = std::enable_if_t<
3380
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3381
    constexpr auto data() const
3382
1.76M
    {
3383
1.76M
        return detail::to_address(ranges::begin(derived()));
3384
1.76M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3382
218k
    {
3383
218k
        return detail::to_address(ranges::begin(derived()));
3384
218k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3382
1.54M
    {
3383
1.54M
        return detail::to_address(ranges::begin(derived()));
3384
1.54M
    }
3385
3386
    template <typename R = D,
3387
              typename = std::enable_if_t<
3388
                  forward_range<R> &&
3389
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3390
    constexpr auto size()
3391
    {
3392
        return ranges::end(derived()) - ranges::begin(derived());
3393
    }
3394
3395
    template <typename R = D,
3396
              typename = std::enable_if_t<
3397
                  forward_range<const R> &&
3398
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3399
    constexpr auto size() const
3400
    {
3401
        return ranges::end(derived()) - ranges::begin(derived());
3402
    }
3403
3404
#if 0
3405
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3406
    constexpr decltype(auto) front()
3407
    {
3408
        return *ranges::begin(derived());
3409
    }
3410
3411
    template <typename R = D,
3412
              typename = std::enable_if_t<forward_range<const R>>>
3413
    constexpr decltype(auto) front() const
3414
    {
3415
        return *ranges::begin(derived());
3416
    }
3417
3418
    template <
3419
        typename R = D,
3420
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3421
    constexpr decltype(auto) back()
3422
    {
3423
        return *ranges::prev(ranges::end(derived()));
3424
    }
3425
3426
    template <typename R = D,
3427
              typename = std::enable_if_t<bidirectional_range<const R> &&
3428
                                          common_range<const R>>>
3429
    constexpr decltype(auto) back() const
3430
    {
3431
        return *ranges::prev(ranges::end(derived()));
3432
    }
3433
3434
    template <typename R = D,
3435
              typename = std::enable_if_t<random_access_range<R>>>
3436
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3437
    {
3438
        return ranges::begin(derived())[n];
3439
    }
3440
#endif
3441
3442
    template <typename R = D,
3443
              typename = std::enable_if_t<random_access_range<const R>>>
3444
    constexpr decltype(auto) operator[](
3445
        iter_difference_t<iterator_t<const R>> n) const
3446
    {
3447
        return ranges::begin(derived())[n];
3448
    }
3449
};
3450
3451
namespace detail::subrange_ {
3452
3453
template <typename I, typename S = I>
3454
class subrange : public view_interface<subrange<I, S>> {
3455
    static_assert(input_or_output_iterator<I>);
3456
    static_assert(sentinel_for<S, I>);
3457
3458
public:
3459
2.66M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::subrange()
Line
Count
Source
3459
218k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange()
Line
Count
Source
3459
129k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange()
Line
Count
Source
3459
1.54M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange()
Line
Count
Source
3459
772k
    subrange() = default;
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
3460
3461
    template <typename I_,
3462
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3463
    constexpr subrange(I_ i, S s)
3464
90.4M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
90.4M
    {
3466
90.4M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS7_PKS8_lLl4096EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
246k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
246k
    {
3466
246k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS7_PKS8_lLl1024EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
1.52M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.52M
    {
3466
1.52M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
1.81M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.81M
    {
3466
1.81M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
26.4M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
26.4M
    {
3466
26.4M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
119k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
119k
    {
3466
119k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
755k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
755k
    {
3466
755k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES8_EC2IS8_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESC_S8_
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKcS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
1.50M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.50M
    {
3466
1.50M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKwS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
58.0M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
58.0M
    {
3466
58.0M
    }
3467
3468
    template <
3469
        typename R,
3470
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3471
                         std::is_convertible_v<iterator_t<R>, I> &&
3472
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3473
    constexpr subrange(R&& r)
3474
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3475
    {
3476
    }
3477
3478
    constexpr I begin() const
3479
241M
    {
3480
241M
        return m_iterator;
3481
241M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3479
2.61M
    {
3480
2.61M
        return m_iterator;
3481
2.61M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3479
364k
    {
3480
364k
        return m_iterator;
3481
364k
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3479
155M
    {
3480
155M
        return m_iterator;
3481
155M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3479
2.27M
    {
3480
2.27M
        return m_iterator;
3481
2.27M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
4.91M
    {
3480
4.91M
        return m_iterator;
3481
4.91M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
75.0M
    {
3480
75.0M
        return m_iterator;
3481
75.0M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3479
126k
    {
3480
126k
        return m_iterator;
3481
126k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3479
762k
    {
3480
762k
        return m_iterator;
3481
762k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::begin() const
3482
    constexpr S end() const
3483
300M
    {
3484
300M
        return m_sentinel;
3485
300M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3483
1.25M
    {
3484
1.25M
        return m_sentinel;
3485
1.25M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3483
4.54M
    {
3484
4.54M
        return m_sentinel;
3485
4.54M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3483
147M
    {
3484
147M
        return m_sentinel;
3485
147M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3483
69.0M
    {
3484
69.0M
        return m_sentinel;
3485
69.0M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
4.38M
    {
3484
4.38M
        return m_sentinel;
3485
4.38M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3483
126k
    {
3484
126k
        return m_sentinel;
3485
126k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
72.4M
    {
3484
72.4M
        return m_sentinel;
3485
72.4M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3483
762k
    {
3484
762k
        return m_sentinel;
3485
762k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::end() const
3486
3487
    SCN_NODISCARD constexpr bool empty() const
3488
    {
3489
        return m_iterator == m_sentinel;
3490
    }
3491
3492
    template <typename I_ = I,
3493
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3494
    constexpr std::size_t size() const
3495
4.61M
    {
3496
4.61M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
4.61M
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKcS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
919k
    {
3496
919k
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
919k
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKwS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
3.69M
    {
3496
3.69M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
3.69M
    }
3498
3499
private:
3500
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3501
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3502
};
3503
3504
template <typename I,
3505
          typename S,
3506
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3507
              nullptr>
3508
subrange(I, S) -> subrange<I, S>;
3509
3510
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3511
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3512
3513
}  // namespace detail::subrange_
3514
3515
/**
3516
 * \see `std::ranges::subrange`
3517
 */
3518
using detail::subrange_::subrange;
3519
3520
template <typename I, typename S>
3521
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3522
3523
struct default_sentinel_t {};
3524
inline constexpr default_sentinel_t default_sentinel{};
3525
3526
}  // namespace ranges
3527
3528
namespace detail {
3529
3530
namespace char_t_fn {
3531
template <typename T, typename = typename T::value_type>
3532
constexpr auto impl_nonarray(priority_tag<2>)
3533
0
{
3534
0
    return tag_type<typename T::value_type>{};
3535
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char>(scn::v4::detail::priority_tag<2ul>)
3536
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3537
constexpr auto impl_nonarray(priority_tag<1>)
3538
0
{
3539
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3540
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
3541
template <typename T>
3542
constexpr auto impl_nonarray(priority_tag<0>)
3543
{
3544
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3545
}
3546
3547
template <typename T,
3548
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3549
constexpr auto impl()
3550
0
{
3551
0
    using T_nocvref = remove_cvref_t<T>;
3552
0
    if constexpr (std::is_array_v<T_nocvref>) {
3553
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3554
0
    }
3555
0
    else {
3556
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3557
0
    }
3558
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, void>()
3559
3560
template <typename Range>
3561
using result = decltype(impl<Range>());
3562
}  // namespace char_t_fn
3563
3564
template <typename Range>
3565
using char_t = typename char_t_fn::result<Range>::type;
3566
3567
template <typename Range, typename = void>
3568
inline constexpr bool is_file_or_narrow_range_impl = false;
3569
template <>
3570
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3571
template <typename Range>
3572
inline constexpr bool
3573
    is_file_or_narrow_range_impl<Range,
3574
                                 std::enable_if_t<ranges::range<Range>>> =
3575
        std::is_same_v<char_t<Range>, char>;
3576
3577
template <typename Range>
3578
inline constexpr bool is_file_or_narrow_range =
3579
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3580
3581
template <typename Range, typename = void>
3582
inline constexpr bool is_wide_range = false;
3583
template <typename Range>
3584
inline constexpr bool
3585
    is_wide_range<Range,
3586
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3587
        std::is_same_v<char_t<Range>, wchar_t>;
3588
3589
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3590
struct borrowed_tail_subrange {
3591
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3592
};
3593
template <typename R>
3594
struct borrowed_tail_subrange<R, false> {
3595
    using type = ranges::dangling;
3596
};
3597
3598
/// Equivalent to
3599
/// `ranges::subrange<ranges::iterator_t<R>,
3600
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3601
/// `ranges::dangling` otherwise.
3602
///
3603
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3604
/// the range sentinel.
3605
template <typename R>
3606
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3607
3608
}  // namespace detail
3609
3610
namespace ranges {
3611
template <typename CharT, typename Traits>
3612
inline constexpr bool
3613
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3614
}
3615
3616
/////////////////////////////////////////////////////////////////
3617
// Small generic algorithms
3618
/////////////////////////////////////////////////////////////////
3619
3620
namespace detail {
3621
3622
/**
3623
 * Implementation of `std::min_element` without including `<algorithm>`
3624
 */
3625
template <typename It>
3626
constexpr It min_element(It first, It last)
3627
{
3628
    if (first == last) {
3629
        return last;
3630
    }
3631
3632
    It smallest = first;
3633
    ++first;
3634
    for (; first != last; ++first) {
3635
        if (*first < *smallest) {
3636
            smallest = first;
3637
        }
3638
    }
3639
    return smallest;
3640
}
3641
3642
/**
3643
 * Implementation of `std::min` without including `<algorithm>`
3644
 */
3645
template <typename T>
3646
constexpr T min(T a, T b) noexcept
3647
{
3648
    return (b < a) ? b : a;
3649
}
3650
3651
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3652
constexpr Ptr find(Ptr first, Ptr last, T value)
3653
{
3654
    for (; first != last; ++first) {
3655
        if (*first == value) {
3656
            return first;
3657
        }
3658
    }
3659
    return last;
3660
}
3661
3662
template <>
3663
inline const char* find<false, char>(const char* first,
3664
                                     const char* last,
3665
                                     char value)
3666
0
{
3667
0
    auto ptr = static_cast<const char*>(
3668
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3669
0
    return ptr != nullptr ? ptr : last;
3670
0
}
3671
3672
}  // namespace detail
3673
3674
/////////////////////////////////////////////////////////////////
3675
// Errors
3676
/////////////////////////////////////////////////////////////////
3677
3678
/**
3679
 * Error class.
3680
 * Used as a return value for functions without a success value.
3681
 * Doesn't have a success state, and isn't default constructible:
3682
 * use `expected<void, scan_error>` to achieve that.
3683
 *
3684
 * \ingroup result
3685
 */
3686
class SCN_TRIVIAL_ABI scan_error {
3687
public:
3688
    /// Error code
3689
    enum code {
3690
        /// Input ended unexpectedly.
3691
        end_of_input,
3692
3693
        /// Format string was invalid.
3694
        /// Often a compile-time error, if supported or enabled.
3695
        invalid_format_string,
3696
3697
        /// Scanned value was invalid for given type,
3698
        /// or a value of the given couldn't be scanned.
3699
        invalid_scanned_value,
3700
3701
        /// Literal character specified in format string not found in source.
3702
        invalid_literal,
3703
3704
        /// Too many fill characters scanned,
3705
        /// field precision (max width) exceeded.
3706
        invalid_fill,
3707
3708
        /// Scanned field width was shorter than
3709
        /// what was specified as the minimum field width.
3710
        length_too_short,
3711
3712
        /// Source range is in an invalid state,
3713
        /// failed to continue reading.
3714
        invalid_source_state,
3715
3716
        /// Value out of range, too large (higher than the maximum value)
3717
        /// i.e. >2^32 for int32
3718
        value_positive_overflow,
3719
3720
        /// Value out of range, too small (lower than the minimum value)
3721
        /// i.e. <2^32 for int32
3722
        value_negative_overflow,
3723
3724
        /// Value out of range, magnitude too small, sign +
3725
        /// (between 0 and the smallest subnormal float)
3726
        value_positive_underflow,
3727
3728
        /// Value out of range, magnitude too small, sign -
3729
        /// (between 0 and the smallest subnormal float)
3730
        value_negative_underflow,
3731
3732
        max_error
3733
    };
3734
3735
private:
3736
    using code_t = code;
3737
3738
public:
3739
    /// Constructs an error with `c` and `m`
3740
134k
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3741
134k
    {
3742
134k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3743
134k
    }
3744
3745
    constexpr explicit operator code_t() const noexcept
3746
0
    {
3747
0
        return m_code;
3748
0
    }
3749
3750
    /// Get error code
3751
    SCN_NODISCARD constexpr code_t code() const noexcept
3752
0
    {
3753
0
        return m_code;
3754
0
    }
3755
    /// Get error message
3756
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3757
0
    {
3758
0
        return m_msg;
3759
0
    }
3760
3761
    /// Convert to a `std::errc`.
3762
    SCN_NODISCARD constexpr std::errc to_errc() const noexcept
3763
0
    {
3764
0
        switch (m_code) {
3765
0
            case end_of_input:
3766
0
            case invalid_format_string:
3767
0
            case invalid_scanned_value:
3768
0
            case invalid_literal:
3769
0
            case invalid_fill:
3770
0
            case length_too_short:
3771
0
                return std::errc::invalid_argument;
3772
0
            case invalid_source_state:
3773
0
                return std::errc::io_error;
3774
0
            case value_positive_overflow:
3775
0
            case value_negative_overflow:
3776
0
            case value_positive_underflow:
3777
0
            case value_negative_underflow:
3778
0
                return std::errc::result_out_of_range;
3779
0
            case max_error:
3780
0
            default:
3781
0
                assert(false);
3782
0
                SCN_UNREACHABLE;
3783
0
        }
3784
0
    }
3785
3786
private:
3787
    const char* m_msg;
3788
    code_t m_code;
3789
};
3790
3791
constexpr bool operator==(scan_error a, scan_error b) noexcept
3792
0
{
3793
0
    return a.code() == b.code();
3794
0
}
3795
constexpr bool operator!=(scan_error a, scan_error b) noexcept
3796
0
{
3797
0
    return !(a == b);
3798
0
}
3799
3800
constexpr bool operator==(scan_error a, enum scan_error::code b) noexcept
3801
0
{
3802
0
    return a.code() == b;
3803
0
}
3804
constexpr bool operator!=(scan_error a, enum scan_error::code b) noexcept
3805
0
{
3806
0
    return !(a == b);
3807
0
}
3808
3809
constexpr bool operator==(enum scan_error::code a, scan_error b) noexcept
3810
0
{
3811
0
    return a == b.code();
3812
0
}
3813
constexpr bool operator!=(enum scan_error::code a, scan_error b) noexcept
3814
0
{
3815
0
    return !(a == b);
3816
0
}
3817
3818
namespace detail {
3819
// Intentionally not constexpr, to give out a compile-time error
3820
SCN_COLD scan_error handle_error(scan_error e);
3821
}  // namespace detail
3822
3823
#if SCN_HAS_EXCEPTIONS
3824
3825
namespace detail {
3826
3827
class scan_format_string_error_base : public std::runtime_error {
3828
public:
3829
    explicit scan_format_string_error_base(const std::string& what_arg)
3830
        : runtime_error(what_arg)
3831
0
    {
3832
0
    }
3833
3834
    explicit scan_format_string_error_base(std::false_type,
3835
                                           const char* what_arg)
3836
        : runtime_error(what_arg)
3837
0
    {
3838
0
    }
3839
3840
    explicit scan_format_string_error_base(std::true_type, const char* what_arg)
3841
        : runtime_error(what_arg), m_internal_literal_msg(what_arg)
3842
0
    {
3843
0
    }
3844
3845
    // Doing everything in a `detail::` base class
3846
    // to make this a `friend` inside that namespace
3847
    // (essentially private)
3848
    friend const char* get_internal_literal_msg(
3849
        const scan_format_string_error_base& m)
3850
0
    {
3851
0
        return m.m_internal_literal_msg;
3852
0
    }
3853
3854
private:
3855
    const char* m_internal_literal_msg{nullptr};
3856
};
3857
3858
}  // namespace detail
3859
3860
/**
3861
 * An exception type used to report format string parsing errors.
3862
 */
3863
class scan_format_string_error : public detail::scan_format_string_error_base {
3864
public:
3865
    // Not `using` constructors to document them explicitly.
3866
3867
    /**
3868
     * Construct from a `std::string`.
3869
     */
3870
    explicit scan_format_string_error(const std::string& what_arg)
3871
        : scan_format_string_error_base(what_arg)
3872
0
    {
3873
0
    }
3874
3875
    /**
3876
     * Construct from a `const char*`.
3877
     */
3878
    explicit scan_format_string_error(const char* what_arg)
3879
        : scan_format_string_error_base(std::false_type{}, what_arg)
3880
0
    {
3881
0
    }
3882
3883
    /**
3884
     * Construct from a string literal.
3885
     */
3886
    template <std::size_t N>
3887
    explicit scan_format_string_error(const char (&what_arg)[N])
3888
        : scan_format_string_error_base(std::true_type{}, what_arg)
3889
    {
3890
    }
3891
};
3892
#endif
3893
3894
/**
3895
 * An `expected<T, scan_error>`.
3896
 *
3897
 * Not a type alias to shorten template names.
3898
 *
3899
 * \ingroup result
3900
 */
3901
template <typename T>
3902
struct scan_expected : public expected<T, scan_error> {
3903
    using expected<T, scan_error>::expected;
3904
3905
    scan_expected(const expected<T, scan_error>& other)
3906
        : expected<T, scan_error>(other)
3907
    {
3908
    }
3909
    scan_expected(expected<T, scan_error>&& other)
3910
0
        : expected<T, scan_error>(SCN_MOVE(other))
3911
0
    {
3912
0
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<char const*>::scan_expected(scn::v4::expected<char const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<wchar_t const*>::scan_expected(scn::v4::expected<wchar_t const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>&&)
3913
};
3914
3915
namespace detail {
3916
constexpr auto unexpected_scan_error(enum scan_error::code c, const char* m)
3917
122k
{
3918
122k
    return unexpected(scan_error{c, m});
3919
122k
}
3920
3921
template <typename T>
3922
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3923
}  // namespace detail
3924
3925
84.0k
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3926
84.0k
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3927
84.0k
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3928
3929
#define SCN_TRY_DISCARD(x)                                      \
3930
3.83M
    if (auto&& SCN_TRY_TMP = (x); SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3931
15.8k
        return ::scn::unexpected(SCN_TRY_TMP.error());          \
3932
15.8k
    }
3933
3934
#define SCN_TRY_ASSIGN(init, x)                        \
3935
7.29M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3936
7.29M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3937
68.2k
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3938
68.2k
    }                                                  \
3939
7.29M
    init = *SCN_FWD(SCN_TRY_TMP);
3940
6.23M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3941
3942
/////////////////////////////////////////////////////////////////
3943
// string_view utilities
3944
/////////////////////////////////////////////////////////////////
3945
3946
namespace detail {
3947
3948
template <typename T>
3949
struct is_string_view : std::false_type {};
3950
template <typename CharT, typename Traits>
3951
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3952
};
3953
3954
// workarounds for MSVC string_view debug iterators
3955
template <typename CharT>
3956
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3957
    typename std::basic_string_view<CharT>::iterator first,
3958
    typename std::basic_string_view<CharT>::iterator last)
3959
63.3M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
63.3M
    else {
3966
63.3M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
63.3M
                                       to_address(first), to_address(last)))};
3968
63.3M
    }
3969
63.3M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3959
3.35M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
3.35M
    else {
3966
3.35M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
3.35M
                                       to_address(first), to_address(last)))};
3968
3.35M
    }
3969
3.35M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3959
60.0M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
60.0M
    else {
3966
60.0M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
60.0M
                                       to_address(first), to_address(last)))};
3968
60.0M
    }
3969
60.0M
}
3970
3971
template <typename CharT>
3972
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3973
    const CharT* first,
3974
    const CharT* last)
3975
869k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
869k
    else {
3981
869k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
869k
    }
3983
869k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3975
116k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
116k
    else {
3981
116k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
116k
    }
3983
116k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3975
752k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
752k
    else {
3981
752k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
752k
    }
3983
752k
}
3984
3985
template <typename CharT>
3986
constexpr auto make_string_view_iterator(
3987
    std::basic_string_view<CharT> sv,
3988
    typename std::basic_string_view<CharT>::iterator it) ->
3989
    typename std::basic_string_view<CharT>::iterator
3990
1.66M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
1.66M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
1.66M
        SCN_UNUSED(sv);
3996
1.66M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
1.66M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v4::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3990
1.66M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
1.66M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
1.66M
        SCN_UNUSED(sv);
3996
1.66M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
1.66M
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v4::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
4002
4003
template <typename CharT>
4004
constexpr auto make_string_view_iterator_from_pointer(
4005
    std::basic_string_view<CharT> sv,
4006
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
4007
{
4008
    if constexpr (std::is_constructible_v<
4009
                      typename std::basic_string_view<CharT>::iterator,
4010
                      const CharT*> &&
4011
                  !SCN_MSVC_DEBUG_ITERATORS) {
4012
        SCN_UNUSED(sv);
4013
        return ptr;
4014
    }
4015
    else {
4016
        return sv.begin() + std::distance(sv.data(), ptr);
4017
    }
4018
}
4019
4020
/////////////////////////////////////////////////////////////////
4021
// Lightweight Unicode facilities
4022
/////////////////////////////////////////////////////////////////
4023
4024
constexpr inline bool is_ascii_code_point(char32_t cp)
4025
0
{
4026
0
    return cp <= 0x7f;
4027
0
}
4028
4029
template <typename U8>
4030
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
4031
3.94M
{
4032
3.94M
    static_assert(sizeof(U8) == 1);
4033
4034
3.94M
    SCN_GCC_COMPAT_PUSH
4035
3.94M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
4036
3.94M
    constexpr char lengths[] =
4037
3.94M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
4038
3.94M
        "\1\1\1\1\1\1\1\1"
4039
3.94M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
4040
                            // byte
4041
3.94M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
4042
3.94M
        "\3\3"              // highest bits 1110 -> 3-byte cp
4043
3.94M
        "\4";               // highest bits 11110 -> 4-byte cp
4044
3.94M
    return lengths[static_cast<unsigned char>(ch) >> 3];
4045
3.94M
    SCN_GCC_COMPAT_POP
4046
3.94M
}
4047
4048
template <typename U16>
4049
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
4050
{
4051
    static_assert(sizeof(U16) == 2);
4052
4053
    const auto lead = static_cast<uint16_t>(0xffff & ch);
4054
    if (lead >= 0xd800 && lead <= 0xdbff) {
4055
        // high surrogate
4056
        return 2;
4057
    }
4058
    if (lead >= 0xdc00 && lead <= 0xdfff) {
4059
        // unpaired low surrogate
4060
        return 0;
4061
    }
4062
    return 1;
4063
}
4064
4065
template <typename U>
4066
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
4067
132M
{
4068
132M
    if constexpr (sizeof(U) == 1) {
4069
3.94M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
128M
    else {
4075
        // utf-32
4076
128M
        static_assert(sizeof(U) == 4);
4077
128M
        SCN_UNUSED(ch);
4078
128M
        return 1;
4079
128M
    }
4080
132M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
4067
3.94M
{
4068
3.94M
    if constexpr (sizeof(U) == 1) {
4069
3.94M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
    else {
4075
        // utf-32
4076
        static_assert(sizeof(U) == 4);
4077
        SCN_UNUSED(ch);
4078
        return 1;
4079
    }
4080
3.94M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
4067
128M
{
4068
    if constexpr (sizeof(U) == 1) {
4069
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
128M
    else {
4075
        // utf-32
4076
128M
        static_assert(sizeof(U) == 4);
4077
128M
        SCN_UNUSED(ch);
4078
128M
        return 1;
4079
128M
    }
4080
128M
}
4081
4082
inline constexpr char32_t invalid_code_point = 0x110000;
4083
4084
inline constexpr char32_t decode_utf8_code_point_exhaustive(
4085
    std::string_view input)
4086
3.77M
{
4087
3.77M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4088
4089
3.77M
    const auto is_trailing_code_unit = [](char ch) {
4090
627k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4091
627k
    };
4092
4093
3.77M
    if (input.size() == 1) {
4094
3.40M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
4095
275
            SCN_UNLIKELY_ATTR
4096
275
            return invalid_code_point;
4097
275
        }
4098
3.40M
        return static_cast<char32_t>(input[0]);
4099
3.40M
    }
4100
4101
376k
    if (input.size() == 2) {
4102
115k
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
4103
152
            SCN_UNLIKELY_ATTR
4104
152
            return invalid_code_point;
4105
152
        }
4106
114k
        if (!is_trailing_code_unit(input[1])) {
4107
9.57k
            SCN_UNLIKELY_ATTR
4108
9.57k
            return invalid_code_point;
4109
9.57k
        }
4110
4111
105k
        char32_t cp{};
4112
105k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4113
105k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4114
105k
        return cp;
4115
114k
    }
4116
4117
261k
    if (input.size() == 3) {
4118
248k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
4119
25
            SCN_UNLIKELY_ATTR
4120
25
            return invalid_code_point;
4121
25
        }
4122
248k
        if (!is_trailing_code_unit(input[1]) ||
4123
248k
            !is_trailing_code_unit(input[2])) {
4124
3.87k
            SCN_UNLIKELY_ATTR
4125
3.87k
            return invalid_code_point;
4126
3.87k
        }
4127
4128
245k
        char32_t cp{};
4129
245k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4130
245k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4131
245k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4132
245k
        return cp;
4133
248k
    }
4134
4135
12.7k
    if (input.size() == 4) {
4136
12.7k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
4137
0
            SCN_UNLIKELY_ATTR
4138
0
            return invalid_code_point;
4139
0
        }
4140
12.7k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
4141
5.22k
            SCN_UNLIKELY_ATTR
4142
5.22k
            return invalid_code_point;
4143
5.22k
        }
4144
7.48k
        if (!is_trailing_code_unit(input[1]) ||
4145
7.48k
            !is_trailing_code_unit(input[2]) ||
4146
7.48k
            !is_trailing_code_unit(input[3])) {
4147
2.57k
            SCN_UNLIKELY_ATTR
4148
2.57k
            return invalid_code_point;
4149
2.57k
        }
4150
4151
4.90k
        char32_t cp{};
4152
4.90k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4153
4.90k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4154
4.90k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4155
4.90k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4156
4.90k
        return cp;
4157
7.48k
    }
4158
4159
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4160
    // gcc 7 thinks we'll get here, even when we won't
4161
0
    SCN_EXPECT(false);
4162
0
#endif
4163
0
    SCN_UNREACHABLE;
4164
0
}
4165
4166
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
4167
    std::string_view input)
4168
0
{
4169
0
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4170
4171
0
    const auto is_trailing_code_unit = [](char ch) {
4172
0
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4173
0
    };
4174
4175
0
    if (input.size() == 1) {
4176
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
4177
0
        return static_cast<char32_t>(input[0]);
4178
0
    }
4179
4180
0
    if (input.size() == 2) {
4181
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
4182
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4183
4184
0
        char32_t cp{};
4185
0
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4186
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4187
0
        return cp;
4188
0
    }
4189
4190
0
    if (input.size() == 3) {
4191
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
4192
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4193
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4194
4195
0
        char32_t cp{};
4196
0
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4197
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4198
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4199
0
        return cp;
4200
0
    }
4201
4202
0
    if (input.size() == 4) {
4203
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
4204
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
4205
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4206
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4207
0
        SCN_EXPECT(is_trailing_code_unit(input[3]));
4208
4209
0
        char32_t cp{};
4210
0
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4211
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4212
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4213
0
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4214
0
        return cp;
4215
0
    }
4216
4217
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4218
    // gcc 7 thinks we'll get here, even when we won't
4219
0
    SCN_EXPECT(false);
4220
0
#endif
4221
0
    SCN_UNREACHABLE;
4222
0
}
4223
4224
template <typename CharT>
4225
inline constexpr char32_t decode_utf16_code_point_exhaustive(
4226
    std::basic_string_view<CharT> input)
4227
{
4228
    static_assert(sizeof(CharT) == 2);
4229
4230
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4231
4232
    if (input.size() == 1) {
4233
        return static_cast<char32_t>(input[0]);
4234
    }
4235
4236
    const auto lead = static_cast<uint32_t>(input[0]);
4237
    const auto trail = static_cast<uint32_t>(input[1]);
4238
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
4239
        SCN_UNLIKELY_ATTR
4240
        return invalid_code_point;
4241
    }
4242
4243
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4244
    return static_cast<char32_t>(cp + 0x10000);
4245
}
4246
4247
template <typename CharT>
4248
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
4249
    std::basic_string_view<CharT> input)
4250
{
4251
    static_assert(sizeof(CharT) == 2);
4252
4253
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4254
4255
    if (input.size() == 1) {
4256
        return static_cast<char32_t>(input[0]);
4257
    }
4258
4259
    const auto lead = static_cast<uint32_t>(input[0]);
4260
    const auto trail = static_cast<uint32_t>(input[1]);
4261
    SCN_EXPECT(lead >= 0xd800);
4262
    SCN_EXPECT(lead <= 0xdbff);
4263
    SCN_EXPECT(trail >= 0xdc00);
4264
    SCN_EXPECT(trail <= 0xdfff);
4265
4266
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4267
    return static_cast<char32_t>(cp + 0x10000);
4268
}
4269
4270
template <typename CharT>
4271
inline constexpr char32_t decode_code_point_exhaustive(
4272
    std::basic_string_view<CharT> input)
4273
132M
{
4274
132M
    if constexpr (sizeof(CharT) == 1) {
4275
3.77M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
128M
    else {
4281
128M
        SCN_EXPECT(input.size() == 1);
4282
128M
        auto cp = static_cast<char32_t>(input.front());
4283
128M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
711k
            return invalid_code_point;
4285
711k
        }
4286
127M
        return cp;
4287
128M
    }
4288
132M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4273
3.77M
{
4274
3.77M
    if constexpr (sizeof(CharT) == 1) {
4275
3.77M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
    else {
4281
        SCN_EXPECT(input.size() == 1);
4282
        auto cp = static_cast<char32_t>(input.front());
4283
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
            return invalid_code_point;
4285
        }
4286
        return cp;
4287
    }
4288
3.77M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4273
128M
{
4274
    if constexpr (sizeof(CharT) == 1) {
4275
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
128M
    else {
4281
128M
        SCN_EXPECT(input.size() == 1);
4282
128M
        auto cp = static_cast<char32_t>(input.front());
4283
128M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
711k
            return invalid_code_point;
4285
711k
        }
4286
127M
        return cp;
4287
128M
    }
4288
128M
}
4289
4290
template <typename CharT>
4291
inline constexpr char32_t decode_code_point_exhaustive_valid(
4292
    std::basic_string_view<CharT> input)
4293
0
{
4294
0
    if constexpr (sizeof(CharT) == 1) {
4295
0
        return decode_utf8_code_point_exhaustive_valid(input);
4296
    }
4297
    else if constexpr (sizeof(CharT) == 2) {
4298
        return decode_utf16_code_point_exhaustive_valid(input);
4299
    }
4300
0
    else {
4301
0
        SCN_EXPECT(input.size() == 1);
4302
0
        return static_cast<char32_t>(input.front());
4303
0
    }
4304
0
}
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4305
4306
inline constexpr bool is_cp_space(char32_t cp) noexcept
4307
70.0M
{
4308
    // Pattern_White_Space property
4309
70.0M
    return (cp >= 0x09 && cp <= 0x0d) ||
4310
70.0M
           cp == 0x20 ||    // ASCII space characters
4311
70.0M
           cp == 0x85 ||    // NEXT LINE (NEL)
4312
70.0M
           cp == 0x200e ||  // LEFT-TO-RIGHT MARK
4313
70.0M
           cp == 0x200f ||  // RIGHT-TO-LEFT MARK
4314
70.0M
           cp == 0x2028 ||  // LINE SEPARATOR
4315
70.0M
           cp == 0x2029;    // PARAGRAPH SEPARATOR
4316
70.0M
}
4317
4318
}  // namespace detail
4319
4320
/////////////////////////////////////////////////////////////////
4321
// scan_buffer
4322
/////////////////////////////////////////////////////////////////
4323
4324
namespace detail {
4325
template <typename CharT>
4326
class basic_scan_buffer {
4327
public:
4328
    class forward_iterator;
4329
    class common_forward_iterator;
4330
4331
    using char_type = CharT;
4332
    using range_type =
4333
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4334
    using common_range_type = ranges::subrange<common_forward_iterator>;
4335
4336
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4337
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4338
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4339
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4340
901k
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4340
129k
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4340
772k
    virtual ~basic_scan_buffer() = default;
4341
4342
    virtual bool fill() = 0;
4343
4344
    virtual bool sync(std::ptrdiff_t position)
4345
901k
    {
4346
901k
        SCN_UNUSED(position);
4347
901k
        return true;
4348
901k
    }
scn::v4::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4345
129k
    {
4346
129k
        SCN_UNUSED(position);
4347
129k
        return true;
4348
129k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4345
772k
    {
4346
772k
        SCN_UNUSED(position);
4347
772k
        return true;
4348
772k
    }
4349
4350
    bool sync_all()
4351
34.3k
    {
4352
34.3k
        return sync(0);
4353
34.3k
    }
scn::v4::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4351
11.4k
    {
4352
11.4k
        return sync(0);
4353
11.4k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4351
22.9k
    {
4352
22.9k
        return sync(0);
4353
22.9k
    }
4354
4355
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4356
180M
    {
4357
180M
        return m_putback_buffer.size() + m_current_view.size();
4358
180M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4356
170M
    {
4357
170M
        return m_putback_buffer.size() + m_current_view.size();
4358
170M
    }
scn::v4::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4356
10.8M
    {
4357
10.8M
        return m_putback_buffer.size() + m_current_view.size();
4358
10.8M
    }
4359
4360
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4361
0
    {
4362
0
        return m_current_view;
4363
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::current_view() const
4364
4365
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4366
0
    {
4367
0
        return m_putback_buffer;
4368
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4369
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4370
    {
4371
        return m_putback_buffer;
4372
    }
4373
4374
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4375
        std::ptrdiff_t pos) const
4376
2.87M
    {
4377
2.87M
        if (SCN_UNLIKELY(
4378
2.87M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
1.84M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
1.84M
        }
4381
1.03M
        const auto start = pos - m_putback_buffer.size();
4382
1.03M
        SCN_EXPECT(start <= m_current_view.size());
4383
1.03M
        return m_current_view.substr(start);
4384
1.03M
    }
scn::v4::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4376
602k
    {
4377
602k
        if (SCN_UNLIKELY(
4378
602k
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
340k
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
340k
        }
4381
262k
        const auto start = pos - m_putback_buffer.size();
4382
262k
        SCN_EXPECT(start <= m_current_view.size());
4383
262k
        return m_current_view.substr(start);
4384
262k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4376
2.27M
    {
4377
2.27M
        if (SCN_UNLIKELY(
4378
2.27M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
1.50M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
1.50M
        }
4381
769k
        const auto start = pos - m_putback_buffer.size();
4382
769k
        SCN_EXPECT(start <= m_current_view.size());
4383
769k
        return m_current_view.substr(start);
4384
769k
    }
4385
4386
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4387
48.5M
    {
4388
48.5M
        if (SCN_UNLIKELY(
4389
48.5M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
25.3M
            return m_putback_buffer[pos];
4391
25.3M
        }
4392
23.2M
        const auto start = pos - m_putback_buffer.size();
4393
23.2M
        SCN_EXPECT(start < m_current_view.size());
4394
23.2M
        return m_current_view[start];
4395
23.2M
    }
scn::v4::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4387
2.62M
    {
4388
2.62M
        if (SCN_UNLIKELY(
4389
2.62M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
1.43M
            return m_putback_buffer[pos];
4391
1.43M
        }
4392
1.19M
        const auto start = pos - m_putback_buffer.size();
4393
1.19M
        SCN_EXPECT(start < m_current_view.size());
4394
1.19M
        return m_current_view[start];
4395
1.19M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4387
45.9M
    {
4388
45.9M
        if (SCN_UNLIKELY(
4389
45.9M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
23.8M
            return m_putback_buffer[pos];
4391
23.8M
        }
4392
22.0M
        const auto start = pos - m_putback_buffer.size();
4393
22.0M
        SCN_EXPECT(start < m_current_view.size());
4394
22.0M
        return m_current_view[start];
4395
22.0M
    }
4396
4397
    SCN_NODISCARD bool is_contiguous() const
4398
2.70M
    {
4399
2.70M
        return m_is_contiguous;
4400
2.70M
    }
scn::v4::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4398
387k
    {
4399
387k
        return m_is_contiguous;
4400
387k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4398
2.31M
    {
4399
2.31M
        return m_is_contiguous;
4400
2.31M
    }
4401
4402
    SCN_NODISCARD auto get_contiguous() const
4403
0
    {
4404
0
        SCN_EXPECT(is_contiguous());
4405
0
        return ranges::subrange<const CharT*>{
4406
0
            current_view().data(),
4407
0
            current_view().data() + current_view().size()};
4408
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4409
4410
    SCN_NODISCARD range_type get();
4411
    SCN_NODISCARD common_range_type get_common_range();
4412
4413
protected:
4414
    friend class forward_iterator;
4415
    friend class common_forward_iterator;
4416
4417
    struct contiguous_tag {};
4418
    struct non_contiguous_tag {};
4419
4420
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4421
0
        : m_current_view(sv), m_is_contiguous(true)
4422
0
    {
4423
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4424
4425
    basic_scan_buffer(non_contiguous_tag,
4426
                      std::basic_string_view<char_type> sv = {})
4427
901k
        : m_current_view(sv), m_is_contiguous(false)
4428
901k
    {
4429
901k
    }
scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4427
129k
        : m_current_view(sv), m_is_contiguous(false)
4428
129k
    {
4429
129k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4427
772k
        : m_current_view(sv), m_is_contiguous(false)
4428
772k
    {
4429
772k
    }
4430
4431
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4432
0
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4433
0
    {
4434
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(bool, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4435
4436
    std::basic_string_view<char_type> m_current_view{};
4437
    std::basic_string<char_type> m_putback_buffer{};
4438
    bool m_is_contiguous{false};
4439
};
4440
4441
template <typename CharT>
4442
class basic_scan_buffer<CharT>::forward_iterator {
4443
public:
4444
    using value_type = CharT;
4445
    using reference = CharT;
4446
    using pointer = CharT*;
4447
    using difference_type = std::ptrdiff_t;
4448
    using iterator_category = std::forward_iterator_tag;
4449
4450
0
    forward_iterator() = default;
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator()
4451
4452
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4453
901k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
901k
    {
4455
901k
        SCN_EXPECT(parent);
4456
901k
        SCN_EXPECT(!parent->is_contiguous());
4457
901k
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4453
129k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
129k
    {
4455
129k
        SCN_EXPECT(parent);
4456
129k
        SCN_EXPECT(!parent->is_contiguous());
4457
129k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4453
772k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
772k
    {
4455
772k
        SCN_EXPECT(parent);
4456
772k
        SCN_EXPECT(!parent->is_contiguous());
4457
772k
    }
4458
4459
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4460
0
        : m_begin(const_cast<CharT*>(view.data())),
4461
0
          m_end(const_cast<CharT*>(view.data() + view.size())),
4462
0
          m_position(pos)
4463
0
    {
4464
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4465
4466
    std::ptrdiff_t position() const
4467
3.40M
    {
4468
3.40M
        return m_position;
4469
3.40M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4467
679k
    {
4468
679k
        return m_position;
4469
679k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4467
2.72M
    {
4468
2.72M
        return m_position;
4469
2.72M
    }
4470
4471
    bool stores_parent() const
4472
440M
    {
4473
440M
        assert(m_begin);
4474
440M
        return m_end == nullptr;
4475
440M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4472
26.7M
    {
4473
26.7M
        assert(m_begin);
4474
26.7M
        return m_end == nullptr;
4475
26.7M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4472
413M
    {
4473
413M
        assert(m_begin);
4474
413M
        return m_end == nullptr;
4475
413M
    }
4476
4477
    basic_scan_buffer<CharT>* parent()
4478
0
    {
4479
0
        SCN_EXPECT(stores_parent());
4480
0
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4481
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
4482
    const basic_scan_buffer<CharT>* parent() const
4483
256M
    {
4484
256M
        SCN_EXPECT(stores_parent());
4485
256M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
256M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4483
15.5M
    {
4484
15.5M
        SCN_EXPECT(stores_parent());
4485
15.5M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
15.5M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4483
241M
    {
4484
241M
        SCN_EXPECT(stores_parent());
4485
241M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
241M
    }
4487
4488
    std::basic_string_view<CharT> contiguous_segment() const
4489
2.87M
    {
4490
2.87M
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
2.87M
        return parent()->get_segment_starting_at(position());
4496
2.87M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4489
602k
    {
4490
602k
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
602k
        return parent()->get_segment_starting_at(position());
4496
602k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4489
2.27M
    {
4490
2.27M
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
2.27M
        return parent()->get_segment_starting_at(position());
4496
2.27M
    }
4497
    auto to_contiguous_segment_iterator() const
4498
    {
4499
        return contiguous_segment().data();
4500
    }
4501
4502
    forward_iterator& operator++()
4503
33.9M
    {
4504
33.9M
        ++m_position;
4505
33.9M
        (void)read_at_position();
4506
33.9M
        return *this;
4507
33.9M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4503
2.42M
    {
4504
2.42M
        ++m_position;
4505
2.42M
        (void)read_at_position();
4506
2.42M
        return *this;
4507
2.42M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4503
31.5M
    {
4504
31.5M
        ++m_position;
4505
31.5M
        (void)read_at_position();
4506
31.5M
        return *this;
4507
31.5M
    }
4508
4509
    forward_iterator operator++(int)
4510
    {
4511
        auto copy = *this;
4512
        operator++();
4513
        return copy;
4514
    }
4515
4516
    CharT operator*() const
4517
48.5M
    {
4518
48.5M
        SCN_EXPECT(m_begin);
4519
4520
48.5M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
48.5M
        auto res = read_at_position();
4527
48.5M
        SCN_EXPECT(res);
4528
48.5M
        return parent()->get_character_at(m_position);
4529
48.5M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4517
2.62M
    {
4518
2.62M
        SCN_EXPECT(m_begin);
4519
4520
2.62M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
2.62M
        auto res = read_at_position();
4527
2.62M
        SCN_EXPECT(res);
4528
2.62M
        return parent()->get_character_at(m_position);
4529
2.62M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4517
45.9M
    {
4518
45.9M
        SCN_EXPECT(m_begin);
4519
4520
45.9M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
45.9M
        auto res = read_at_position();
4527
45.9M
        SCN_EXPECT(res);
4528
45.9M
        return parent()->get_character_at(m_position);
4529
45.9M
    }
4530
4531
    forward_iterator& batch_advance(std::ptrdiff_t n)
4532
0
    {
4533
0
        SCN_EXPECT(n >= 0);
4534
0
        m_position += n;
4535
0
        return *this;
4536
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
4537
4538
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4539
0
    {
4540
0
        SCN_EXPECT(i >= m_position);
4541
0
        m_position = i;
4542
0
        return *this;
4543
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4544
4545
    friend bool operator==(const forward_iterator& lhs,
4546
                           const forward_iterator& rhs)
4547
10.1M
    {
4548
10.1M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
10.1M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4547
1.07M
    {
4548
1.07M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
1.07M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4547
9.08M
    {
4548
9.08M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
9.08M
    }
4550
    friend bool operator!=(const forward_iterator& lhs,
4551
                           const forward_iterator& rhs)
4552
10.1M
    {
4553
10.1M
        return !(lhs == rhs);
4554
10.1M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4552
1.07M
    {
4553
1.07M
        return !(lhs == rhs);
4554
1.07M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4552
9.07M
    {
4553
9.07M
        return !(lhs == rhs);
4554
9.07M
    }
4555
4556
    friend bool operator==(const forward_iterator& x,
4557
                           ranges::default_sentinel_t)
4558
25.3M
    {
4559
25.3M
        return x.is_at_end();
4560
25.3M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4558
1.39M
    {
4559
1.39M
        return x.is_at_end();
4560
1.39M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4558
23.9M
    {
4559
23.9M
        return x.is_at_end();
4560
23.9M
    }
4561
    friend bool operator==(ranges::default_sentinel_t,
4562
                           const forward_iterator& x)
4563
    {
4564
        return x.is_at_end();
4565
    }
4566
4567
    friend bool operator!=(const forward_iterator& x,
4568
                           ranges::default_sentinel_t)
4569
24.5M
    {
4570
24.5M
        return !x.is_at_end();
4571
24.5M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4569
1.47M
    {
4570
1.47M
        return !x.is_at_end();
4571
1.47M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4569
23.0M
    {
4570
23.0M
        return !x.is_at_end();
4571
23.0M
    }
4572
    friend bool operator!=(ranges::default_sentinel_t,
4573
                           const forward_iterator& x)
4574
    {
4575
        return !x.is_at_end();
4576
    }
4577
4578
private:
4579
    friend class basic_scan_buffer<CharT>;
4580
4581
    SCN_NODISCARD bool read_at_position() const
4582
132M
    {
4583
132M
        SCN_EXPECT(m_begin);
4584
4585
132M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
132M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
108M
            return true;
4591
108M
        }
4592
4593
48.5M
        while (m_position >= parent()->chars_available()) {
4594
24.2M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
38.3k
                return false;
4596
38.3k
            }
4597
24.2M
        }
4598
24.2M
        return true;
4599
24.2M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4582
7.92M
    {
4583
7.92M
        SCN_EXPECT(m_begin);
4584
4585
7.92M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
7.92M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
6.43M
            return true;
4591
6.43M
        }
4592
4593
2.95M
        while (m_position >= parent()->chars_available()) {
4594
1.48M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
17.2k
                return false;
4596
17.2k
            }
4597
1.48M
        }
4598
1.46M
        return true;
4599
1.48M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4582
124M
    {
4583
124M
        SCN_EXPECT(m_begin);
4584
4585
124M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
124M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
101M
            return true;
4591
101M
        }
4592
4593
45.5M
        while (m_position >= parent()->chars_available()) {
4594
22.7M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
21.1k
                return false;
4596
21.1k
            }
4597
22.7M
        }
4598
22.7M
        return true;
4599
22.7M
    }
4600
4601
    SCN_NODISCARD bool is_at_end() const
4602
49.9M
    {
4603
49.9M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
49.9M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
49.9M
        return !read_at_position();
4610
49.9M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4602
2.87M
    {
4603
2.87M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
2.87M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
2.87M
        return !read_at_position();
4610
2.87M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4602
47.0M
    {
4603
47.0M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
47.0M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
47.0M
        return !read_at_position();
4610
47.0M
    }
4611
4612
    // If m_end is null, m_begin points to the parent scan_buffer
4613
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4614
    // the entire range)
4615
    mutable void* m_begin{nullptr};
4616
    mutable void* m_end{nullptr};
4617
    std::ptrdiff_t m_position{0};
4618
};
4619
4620
template <typename CharT>
4621
class basic_scan_buffer<CharT>::common_forward_iterator
4622
    : public basic_scan_buffer<CharT>::forward_iterator {
4623
    using base = basic_scan_buffer<CharT>::forward_iterator;
4624
4625
public:
4626
    common_forward_iterator() = default;
4627
4628
    explicit common_forward_iterator(forward_iterator it)
4629
0
        : base(it), m_is_end(it.is_at_end())
4630
0
    {
4631
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
4632
    explicit common_forward_iterator(ranges::default_sentinel_t)
4633
0
        : base(), m_is_end(true)
4634
0
    {
4635
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
4636
4637
    common_forward_iterator& operator++()
4638
    {
4639
        base::operator++();
4640
        m_is_end = base::is_at_end();
4641
        return *this;
4642
    }
4643
4644
    common_forward_iterator operator++(int)
4645
    {
4646
        auto copy = *this;
4647
        operator++();
4648
        return copy;
4649
    }
4650
4651
    common_forward_iterator& batch_advance(std::ptrdiff_t n)
4652
    {
4653
        base::batch_advance(n);
4654
        m_is_end = base::is_at_end();
4655
        return *this;
4656
    }
4657
4658
    common_forward_iterator& batch_advance_to(std::ptrdiff_t i)
4659
    {
4660
        base::batch_advance_to(i);
4661
        m_is_end = base::is_at_end();
4662
        return *this;
4663
    }
4664
4665
    friend bool operator==(const common_forward_iterator& lhs,
4666
                           const common_forward_iterator& rhs)
4667
    {
4668
        if (lhs.m_is_end && rhs.m_is_end) {
4669
            return true;
4670
        }
4671
        if (lhs.m_is_end != rhs.m_is_end) {
4672
            return false;
4673
        }
4674
        return static_cast<const forward_iterator&>(lhs) ==
4675
               static_cast<const forward_iterator&>(rhs);
4676
    }
4677
4678
    friend bool operator!=(const common_forward_iterator& lhs,
4679
                           const common_forward_iterator& rhs)
4680
    {
4681
        return !(lhs == rhs);
4682
    }
4683
4684
private:
4685
    bool m_is_end{};
4686
};
4687
4688
template <typename CharT>
4689
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4690
901k
{
4691
901k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
901k
    return ranges::subrange{forward_iterator{this, 0},
4696
901k
                            ranges::default_sentinel};
4697
901k
}
scn::v4::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4690
129k
{
4691
129k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
129k
    return ranges::subrange{forward_iterator{this, 0},
4696
129k
                            ranges::default_sentinel};
4697
129k
}
scn::v4::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4690
772k
{
4691
772k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
772k
    return ranges::subrange{forward_iterator{this, 0},
4696
772k
                            ranges::default_sentinel};
4697
772k
}
4698
4699
template <typename CharT>
4700
SCN_NODISCARD auto basic_scan_buffer<CharT>::get_common_range()
4701
    -> common_range_type
4702
{
4703
    auto r = get();
4704
    return ranges::subrange{common_forward_iterator{r.begin()},
4705
                            common_forward_iterator{r.end()}};
4706
}
4707
4708
static_assert(ranges::forward_range<scan_buffer::range_type>);
4709
4710
template <typename CharT>
4711
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4712
    using base = basic_scan_buffer<CharT>;
4713
4714
public:
4715
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4716
0
        : base(typename base::contiguous_tag{}, sv)
4717
0
    {
4718
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4719
4720
    bool fill() override
4721
0
    {
4722
0
        SCN_EXPECT(false);
4723
0
        SCN_UNREACHABLE;
4724
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::fill()
4725
};
4726
4727
template <typename CharT>
4728
basic_scan_string_buffer(std::basic_string_view<CharT>)
4729
    -> basic_scan_string_buffer<CharT>;
4730
4731
template <typename CharT>
4732
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4733
    using base = basic_scan_buffer<CharT>;
4734
4735
protected:
4736
901k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
901k
    {
4738
901k
    }
scn::v4::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4736
129k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
129k
    {
4738
129k
    }
scn::v4::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4736
772k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
772k
    {
4738
772k
    }
4739
};
4740
4741
template <typename I, typename S>
4742
using less_than_compare =
4743
    decltype(SCN_DECLVAL(const I&) < SCN_DECLVAL(const S&));
4744
4745
template <typename Range>
4746
class basic_scan_forward_buffer_impl
4747
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4748
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4749
4750
    using _char_type = detail::char_t<Range>;
4751
    using base = basic_scan_forward_buffer_base<_char_type>;
4752
4753
public:
4754
    using char_type = _char_type;
4755
    using range_type = Range;
4756
    using iterator = ranges::iterator_t<const Range>;
4757
    using sentinel = ranges::sentinel_t<const Range>;
4758
4759
    template <
4760
        typename R,
4761
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4762
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4763
    basic_scan_forward_buffer_impl(R&& r)
4764
901k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
901k
          m_cursor(ranges::begin(*m_range))
4766
901k
    {
4767
901k
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4764
129k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
129k
          m_cursor(ranges::begin(*m_range))
4766
129k
    {
4767
129k
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4764
772k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
772k
          m_cursor(ranges::begin(*m_range))
4766
772k
    {
4767
772k
    }
4768
4769
    bool fill() override
4770
24.2M
    {
4771
24.2M
        if (m_cursor == ranges::end(*m_range)) {
4772
38.3k
            return false;
4773
38.3k
        }
4774
24.2M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
24.2M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
24.2M
        }
4777
24.2M
        if (!this->m_current_view.empty()) {
4778
23.3M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
23.3M
                                          this->m_current_view.begin(),
4780
23.3M
                                          this->m_current_view.end());
4781
23.3M
        }
4782
24.2M
        m_latest = *m_cursor;
4783
24.2M
        ++m_cursor;
4784
24.2M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
24.2M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
24.2M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
24.2M
        }
4788
24.2M
        return true;
4789
24.2M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4770
1.48M
    {
4771
1.48M
        if (m_cursor == ranges::end(*m_range)) {
4772
17.2k
            return false;
4773
17.2k
        }
4774
1.46M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
1.46M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
1.46M
        }
4777
1.46M
        if (!this->m_current_view.empty()) {
4778
1.34M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
1.34M
                                          this->m_current_view.begin(),
4780
1.34M
                                          this->m_current_view.end());
4781
1.34M
        }
4782
1.46M
        m_latest = *m_cursor;
4783
1.46M
        ++m_cursor;
4784
1.46M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
1.46M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
1.46M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
1.46M
        }
4788
1.46M
        return true;
4789
1.48M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4770
22.7M
    {
4771
22.7M
        if (m_cursor == ranges::end(*m_range)) {
4772
21.1k
            return false;
4773
21.1k
        }
4774
22.7M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
22.7M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
22.7M
        }
4777
22.7M
        if (!this->m_current_view.empty()) {
4778
22.0M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
22.0M
                                          this->m_current_view.begin(),
4780
22.0M
                                          this->m_current_view.end());
4781
22.0M
        }
4782
22.7M
        m_latest = *m_cursor;
4783
22.7M
        ++m_cursor;
4784
22.7M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
22.7M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
22.7M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
22.7M
        }
4788
22.7M
        return true;
4789
22.7M
    }
4790
4791
private:
4792
    const Range* m_range;
4793
    iterator m_cursor;
4794
    char_type m_latest{};
4795
};
4796
4797
template <typename R>
4798
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4799
4800
struct default_file_tag {};
4801
struct gnu_file_tag {};
4802
struct bsd_file_tag {};
4803
struct musl_file_tag {};
4804
struct win32_file_tag {};
4805
4806
// Non-pretty workaround for MSVC silliness
4807
template <typename F, typename = void>
4808
inline constexpr bool is_gnu_file = false;
4809
template <typename F>
4810
inline constexpr bool
4811
    is_gnu_file<F,
4812
                std::void_t<decltype(SCN_DECLVAL(F)._IO_read_ptr),
4813
                            decltype(SCN_DECLVAL(F)._IO_read_end)>> = true;
4814
4815
template <typename F, typename = void>
4816
inline constexpr bool is_bsd_file = false;
4817
template <typename F>
4818
inline constexpr bool is_bsd_file<
4819
    F,
4820
    std::void_t<decltype(SCN_DECLVAL(F)._p), decltype(SCN_DECLVAL(F)._r)>> =
4821
    true;
4822
4823
template <typename F, typename = void>
4824
inline constexpr bool is_musl_file = false;
4825
template <typename F>
4826
inline constexpr bool is_musl_file<
4827
    F,
4828
    std::void_t<decltype(SCN_DECLVAL(F).rpos), decltype(SCN_DECLVAL(F).rend)>> =
4829
    true;
4830
4831
template <typename F>
4832
inline constexpr bool is_win32_file =
4833
    std::is_same_v<F, std::FILE> && SCN_WINDOWS && !SCN_MINGW;
4834
4835
constexpr auto get_file_tag()
4836
0
{
4837
0
    if constexpr (is_gnu_file<std::FILE>) {
4838
0
        return detail::tag_type<gnu_file_tag>{};
4839
0
    }
4840
0
    else if constexpr (is_bsd_file<std::FILE>) {
4841
0
        return detail::tag_type<bsd_file_tag>{};
4842
0
    }
4843
0
    else if constexpr (is_musl_file<std::FILE>) {
4844
0
        return detail::tag_type<musl_file_tag>{};
4845
0
    }
4846
0
    else if constexpr (is_win32_file<std::FILE>) {
4847
0
        return detail::tag_type<win32_file_tag>{};
4848
0
    }
4849
0
    else {
4850
0
        return detail::tag_type<default_file_tag>{};
4851
0
    }
4852
0
}
4853
4854
template <typename File>
4855
struct stdio_file_interface_base {
4856
0
    stdio_file_interface_base(File* f) : file(f) {}
4857
    ~stdio_file_interface_base() = default;
4858
4859
    stdio_file_interface_base(const stdio_file_interface_base&) = delete;
4860
    stdio_file_interface_base& operator=(const stdio_file_interface_base&) =
4861
        delete;
4862
4863
    stdio_file_interface_base(stdio_file_interface_base&& other)
4864
0
        : file(other.file)
4865
0
    {
4866
0
        other.file = nullptr;
4867
0
    }
4868
    stdio_file_interface_base& operator=(stdio_file_interface_base&& other)
4869
    {
4870
        file = other.file;
4871
        other.file = nullptr;
4872
        return *this;
4873
    }
4874
4875
    File* file;
4876
};
4877
4878
template <typename File, typename Tag>
4879
struct stdio_file_interface_impl;
4880
4881
template <typename File>
4882
struct stdio_file_interface_impl<File, default_file_tag>
4883
    : stdio_file_interface_base<File> {
4884
    void lock() {}
4885
    void unlock() {}
4886
4887
    bool has_buffering() const
4888
    {
4889
        return false;
4890
    }
4891
4892
    std::string_view buffer() const
4893
    {
4894
        return {};
4895
    }
4896
    void unsafe_advance_n(std::ptrdiff_t)
4897
    {
4898
        SCN_EXPECT(false);
4899
        SCN_UNREACHABLE;
4900
    }
4901
    void fill_buffer()
4902
    {
4903
        SCN_EXPECT(false);
4904
        SCN_UNREACHABLE;
4905
    }
4906
4907
    std::optional<char> read_one()
4908
    {
4909
        auto res = std::fgetc(this->file);
4910
        if (res == EOF) {
4911
            return std::nullopt;
4912
        }
4913
        return static_cast<char>(res);
4914
    }
4915
4916
    void prepare_putback() {}
4917
    void finalize_putback() {}
4918
4919
    bool putback(char ch)
4920
    {
4921
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
4922
    }
4923
};
4924
4925
template <typename File>
4926
struct posix_stdio_file_interface : stdio_file_interface_base<File> {
4927
    void lock()
4928
0
    {
4929
0
        flockfile(this->file);
4930
0
    }
4931
    void unlock()
4932
0
    {
4933
0
        funlockfile(this->file);
4934
0
    }
4935
4936
    static bool has_buffering()
4937
0
    {
4938
0
        return true;
4939
0
    }
4940
4941
    std::optional<char> read_one()
4942
0
    {
4943
0
        auto res = getc_unlocked(this->file);
4944
0
        if (res == EOF) {
4945
0
            return std::nullopt;
4946
0
        }
4947
0
        return static_cast<char>(res);
4948
0
    }
4949
4950
    void prepare_putback()
4951
0
    {
4952
0
        unlock();
4953
0
    }
4954
    void finalize_putback()
4955
0
    {
4956
0
        lock();
4957
0
    }
4958
4959
    bool putback(char ch)
4960
0
    {
4961
0
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
4962
0
    }
4963
};
4964
4965
template <typename File>
4966
struct stdio_file_interface_impl<File, gnu_file_tag>
4967
    : posix_stdio_file_interface<File> {
4968
    std::string_view buffer() const
4969
0
    {
4970
0
        return make_string_view_from_pointers(this->file->_IO_read_ptr,
4971
0
                                              this->file->_IO_read_end);
4972
0
    }
4973
    void unsafe_advance_n(std::ptrdiff_t n)
4974
0
    {
4975
0
        SCN_EXPECT(this->file->_IO_read_ptr != nullptr);
4976
0
        SCN_EXPECT(this->file->_IO_read_end - this->file->_IO_read_ptr >= n);
4977
0
        this->file->_IO_read_ptr += n;
4978
0
    }
4979
    void fill_buffer()
4980
0
    {
4981
0
        if (__uflow(this->file) != EOF) {
4982
0
            --this->file->_IO_read_ptr;
4983
0
        }
4984
0
    }
4985
};
4986
4987
template <typename File>
4988
struct stdio_file_interface_impl<File, bsd_file_tag>
4989
    : posix_stdio_file_interface<File> {
4990
    std::string_view buffer() const
4991
    {
4992
        return {reinterpret_cast<const char*>(this->file->_p),
4993
                static_cast<std::size_t>(this->file->_r)};
4994
    }
4995
    void unsafe_advance_n(std::ptrdiff_t n)
4996
    {
4997
        SCN_EXPECT(this->file->_p != nullptr);
4998
        SCN_EXPECT(this->file->_r >= n);
4999
        this->file->_p += n;
5000
        this->file->_r -= n;
5001
    }
5002
    void fill_buffer()
5003
    {
5004
        if (__srget(this->file) != EOF) {
5005
            --this->file->_p;
5006
            ++this->file->_r;
5007
        }
5008
    }
5009
};
5010
5011
template <typename File>
5012
struct stdio_file_interface_impl<File, musl_file_tag>
5013
    : posix_stdio_file_interface<File> {
5014
    std::string_view buffer() const
5015
    {
5016
        return make_string_view_from_pointers(
5017
            reinterpret_cast<const char*>(this->file->rpos),
5018
            reinterpret_cast<const char*>(this->file->rend));
5019
    }
5020
    void unsafe_advance_n(std::ptrdiff_t n)
5021
    {
5022
        SCN_EXPECT(this->file->rpos != nullptr);
5023
        SCN_EXPECT(this->file->rend - this->file->rpos >= n);
5024
        this->file->rpos += n;
5025
    }
5026
    void fill_buffer()
5027
    {
5028
        if (__uflow(this->file) != EOF) {
5029
            --this->file->rpos;
5030
        }
5031
    }
5032
};
5033
5034
template <typename File>
5035
struct stdio_file_interface_impl<File, win32_file_tag>
5036
    : stdio_file_interface_base<File> {
5037
    void lock()
5038
    {
5039
        _lock_file(this->file);
5040
    }
5041
    void unlock()
5042
    {
5043
        _unlock_file(this->file);
5044
    }
5045
5046
    static bool has_buffering()
5047
    {
5048
        return false;
5049
    }
5050
5051
    std::string_view buffer() const
5052
    {
5053
        return {};
5054
    }
5055
    void unsafe_advance_n(std::ptrdiff_t n)
5056
    {
5057
        SCN_EXPECT(false);
5058
        SCN_UNREACHABLE;
5059
    }
5060
    void fill_buffer()
5061
    {
5062
        SCN_EXPECT(false);
5063
        SCN_UNREACHABLE;
5064
    }
5065
5066
    std::optional<char> read_one()
5067
    {
5068
        auto res = _fgetc_nolock(this->file);
5069
        if (res == EOF) {
5070
            return std::nullopt;
5071
        }
5072
        return static_cast<char>(res);
5073
    }
5074
5075
    void prepare_putback() {}
5076
    void finalize_putback() {}
5077
5078
    bool putback(char ch)
5079
    {
5080
        return _ungetc_nolock(static_cast<unsigned char>(ch), this->file) !=
5081
               EOF;
5082
    }
5083
};
5084
5085
using stdio_file_interface =
5086
    stdio_file_interface_impl<std::FILE, decltype(get_file_tag())::type>;
5087
5088
template <typename FileInterface>
5089
class basic_scan_file_buffer : public basic_scan_buffer<char> {
5090
    using base = basic_scan_buffer<char>;
5091
5092
public:
5093
    explicit basic_scan_file_buffer(FileInterface file);
5094
    ~basic_scan_file_buffer();
5095
5096
    bool fill() override;
5097
5098
    bool sync(std::ptrdiff_t position) override;
5099
5100
private:
5101
    FileInterface m_file;
5102
    std::optional<char_type> m_latest{std::nullopt};
5103
};
5104
5105
struct scan_file_buffer : public basic_scan_file_buffer<stdio_file_interface> {
5106
    explicit scan_file_buffer(std::FILE* file)
5107
0
        : basic_scan_file_buffer(stdio_file_interface{file})
5108
0
    {
5109
0
    }
5110
};
5111
5112
extern template basic_scan_file_buffer<
5113
    stdio_file_interface>::basic_scan_file_buffer(stdio_file_interface);
5114
extern template basic_scan_file_buffer<
5115
    stdio_file_interface>::~basic_scan_file_buffer();
5116
extern template bool basic_scan_file_buffer<stdio_file_interface>::fill();
5117
extern template bool basic_scan_file_buffer<stdio_file_interface>::sync(
5118
    std::ptrdiff_t);
5119
5120
template <typename CharT>
5121
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
5122
    using base = basic_scan_buffer<CharT>;
5123
5124
public:
5125
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
5126
0
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
5127
0
          m_other(&other),
5128
0
          m_starting_pos(starting_pos)
5129
0
    {
5130
0
        this->m_current_view = other.get_segment_starting_at(starting_pos);
5131
0
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
5132
0
                                    this->m_current_view.end();
5133
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<char>&, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>&, long)
5134
5135
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
5136
0
        : base(true, view), m_other(nullptr)
5137
0
    {
5138
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
5139
5140
    bool fill() override
5141
0
    {
5142
0
        if (!m_other) {
5143
0
            return false;
5144
0
        }
5145
0
        SCN_EXPECT(m_starting_pos >= 0);
5146
5147
0
        if (m_fill_needs_to_propagate) {
5148
0
            auto ret = m_other->fill();
5149
0
            this->m_current_view = m_other->current_view();
5150
0
            this->m_putback_buffer =
5151
0
                m_other->putback_buffer().substr(m_starting_pos);
5152
0
            return ret;
5153
0
        }
5154
5155
0
        m_fill_needs_to_propagate = true;
5156
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
5157
0
        this->m_current_view = m_other->current_view();
5158
0
        return true;
5159
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::fill()
5160
5161
private:
5162
    base* m_other;
5163
    std::ptrdiff_t m_starting_pos{-1};
5164
    bool m_fill_needs_to_propagate{false};
5165
};
5166
5167
template <typename CharT>
5168
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
5169
    -> basic_scan_ref_buffer<CharT>;
5170
5171
template <typename CharT>
5172
basic_scan_ref_buffer(std::basic_string_view<CharT>)
5173
    -> basic_scan_ref_buffer<CharT>;
5174
5175
template <typename Range>
5176
auto make_string_scan_buffer(const Range& range)
5177
{
5178
    return basic_scan_string_buffer(
5179
        std::basic_string_view{ranges::data(range), ranges::size(range)});
5180
}
5181
5182
template <typename Range>
5183
auto make_forward_scan_buffer(const Range& range)
5184
901k
{
5185
901k
    return basic_scan_forward_buffer_impl(range);
5186
901k
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
5184
129k
{
5185
129k
    return basic_scan_forward_buffer_impl(range);
5186
129k
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
5184
772k
{
5185
772k
    return basic_scan_forward_buffer_impl(range);
5186
772k
}
5187
5188
inline auto make_file_scan_buffer(std::FILE* file)
5189
0
{
5190
0
    return scan_file_buffer(file);
5191
0
}
5192
}  // namespace detail
5193
5194
/////////////////////////////////////////////////////////////////
5195
// make_scan_buffer
5196
/////////////////////////////////////////////////////////////////
5197
5198
/**
5199
 * \defgroup scannable Scannable sources
5200
 *
5201
 * \brief Description of the `scannable_range` and `scannable_source`
5202
 * concepts.
5203
 *
5204
 * A range is considered scannable, if it models at least `forward_range`,
5205
 * and its character type is correct (its value type is the same as the one
5206
 * of the format string).
5207
 * If the range additionally models `contiguous_range` and `sized_range`,
5208
 * additional optimizations are enabled.
5209
 *
5210
 * \code{.cpp}
5211
 * // Exposition only
5212
 * template <typename Range, typename CharT>
5213
 * concept scannable_range =
5214
 *     ranges::forward_range<Range> &&
5215
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
5216
 * \endcode
5217
 *
5218
 * Additionally, files (`std::FILE*`) can be scanned from.
5219
 * Files are always considered to be narrow (`char`-oriented).
5220
 * Thus, the entire concept is:
5221
 *
5222
 * \code{.cpp}
5223
 * // Exposition only
5224
 * template <typename Source, typename CharT>
5225
 * concept scannable_source =
5226
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
5227
 *    std::same_as<CharT, char>) ||
5228
 *   scannable_range<Source, CharT>;
5229
 * \endcode
5230
 */
5231
5232
/**
5233
 * Tag type to indicate an invalid range given to `scn::scan`
5234
 *
5235
 * \ingroup scannable
5236
 */
5237
struct invalid_input_range {};
5238
5239
struct invalid_char_type : invalid_input_range {};
5240
struct custom_char_traits : invalid_input_range {};
5241
struct file_marker_found : invalid_input_range {};
5242
struct insufficient_range : invalid_input_range {};
5243
5244
namespace detail {
5245
template <typename CharT>
5246
inline constexpr bool is_valid_char_type =
5247
    std::is_same_v<std::remove_const_t<CharT>, char> ||
5248
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
5249
5250
namespace _make_scan_buffer {
5251
// buffer -> ref_buffer
5252
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
5253
    -> basic_scan_ref_buffer<char>
5254
0
{
5255
0
    if (!r.begin().stores_parent()) {
5256
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5257
0
    }
5258
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5259
0
}
5260
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
5261
    -> basic_scan_ref_buffer<wchar_t>
5262
0
{
5263
0
    if (!r.begin().stores_parent()) {
5264
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5265
0
    }
5266
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5267
0
}
5268
5269
// string_view -> string_buffer
5270
template <typename CharT>
5271
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
5272
{
5273
    if constexpr (is_valid_char_type<CharT>) {
5274
        return r;
5275
        // return make_string_scan_buffer(r);
5276
    }
5277
    else {
5278
        return invalid_char_type{};
5279
    }
5280
}
5281
5282
// string& -> string_buffer
5283
template <typename CharT, typename Traits, typename Allocator>
5284
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
5285
          priority_tag<3>) noexcept
5286
0
{
5287
    if constexpr (!is_valid_char_type<CharT>) {
5288
        return invalid_char_type{};
5289
    }
5290
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
5291
        return custom_char_traits{};
5292
    }
5293
0
    else {
5294
0
        return std::basic_string_view<CharT>{r};
5295
0
    }
5296
0
}
5297
5298
// String literals:
5299
// CharT(&)[] -> string_buffer
5300
template <typename CharT,
5301
          std::size_t N,
5302
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
5303
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
5304
{
5305
    return std::basic_string_view<CharT>{r, N - 1};
5306
}
5307
5308
// FILE* -> file_buffer
5309
inline auto impl(std::FILE* file, priority_tag<3>)
5310
0
{
5311
0
    return make_file_scan_buffer(file);
5312
0
}
5313
5314
// contiguous + sized -> string_buffer
5315
template <typename Range,
5316
          std::enable_if_t<ranges::contiguous_range<Range> &&
5317
                           ranges::sized_range<Range>>* = nullptr>
5318
auto impl(const Range& r, priority_tag<2>)
5319
1.76M
{
5320
1.76M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
1.76M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
1.76M
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKcS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5319
218k
{
5320
218k
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
218k
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
218k
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKwS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5319
1.54M
{
5320
1.54M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
1.54M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
1.54M
}
5327
5328
// !contiguous + random-access + iterator can be made into a ptr
5329
// for MSVC debug iterators
5330
//   -> string_buffer
5331
template <typename Range,
5332
          std::enable_if_t<!ranges::contiguous_range<Range> &&
5333
                           ranges::random_access_range<Range> &&
5334
                           can_make_address_from_iterator<
5335
                               ranges::iterator_t<Range>>>* = nullptr>
5336
auto impl(const Range& r, priority_tag<1>)
5337
{
5338
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5339
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
5340
                                              to_address(ranges::end(r)));
5341
    }
5342
    else {
5343
        return invalid_char_type{};
5344
    }
5345
}
5346
5347
// forward -> forward_buffer<R>
5348
template <typename Range>
5349
auto impl(const Range& r, priority_tag<0>)
5350
901k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
901k
    else {
5366
901k
        return make_forward_scan_buffer(r);
5367
901k
    }
5368
901k
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5350
129k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
129k
    else {
5366
129k
        return make_forward_scan_buffer(r);
5367
129k
    }
5368
129k
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5350
772k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
772k
    else {
5366
772k
        return make_forward_scan_buffer(r);
5367
772k
    }
5368
772k
}
5369
}  // namespace _make_scan_buffer
5370
5371
template <typename Range>
5372
inline constexpr bool is_scannable_range =
5373
    !std::is_base_of_v<invalid_input_range,
5374
                       decltype(_make_scan_buffer::impl(
5375
                                    SCN_DECLVAL(const Range&)),
5376
                                priority_tag<4>{})>;
5377
5378
template <typename Range>
5379
auto make_scan_buffer(const Range& range)
5380
2.66M
{
5381
2.66M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
2.66M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
2.66M
                  "\n"
5385
2.66M
                  "Unsupported range type given as input to a scanning "
5386
2.66M
                  "function.\n"
5387
2.66M
                  "A range needs to have a character type (value type) "
5388
2.66M
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
2.66M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
2.66M
                  "to be included.\n"
5391
2.66M
                  "See the scnlib documentation for more details.");
5392
2.66M
    static_assert(
5393
2.66M
        !std::is_same_v<T, custom_char_traits>,
5394
2.66M
        "\n"
5395
2.66M
        "Unsupported range type given as input to a scanning "
5396
2.66M
        "function.\n"
5397
2.66M
        "String types (std::basic_string, and std::basic_string_view) "
5398
2.66M
        "need to use std::char_traits. Strings with custom Traits are "
5399
2.66M
        "not supported.");
5400
2.66M
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
2.66M
                  "\n"
5402
2.66M
                  "Unsupported range type given as input to a scanning "
5403
2.66M
                  "function.\n"
5404
2.66M
                  "file_marker_found cannot be used as an "
5405
2.66M
                  "source range type to scn::scan.\n"
5406
2.66M
                  "To read from stdin, use scn::input or scn::prompt, "
5407
2.66M
                  "and do not provide an explicit source range, "
5408
2.66M
                  "or use scn::scan with a FILE* directly.");
5409
2.66M
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
2.66M
                  "\n"
5411
2.66M
                  "Unsupported range type given as input to a scanning "
5412
2.66M
                  "function.\n"
5413
2.66M
                  "In order to be scannable, a range needs to satisfy "
5414
2.66M
                  "`forward_range`. `input_range` is not sufficient.");
5415
2.66M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
2.66M
                  "\n"
5417
2.66M
                  "Unsupported range type given as input to a scanning "
5418
2.66M
                  "function.\n"
5419
2.66M
                  "A range needs to model forward_range and have a valid "
5420
2.66M
                  "character type (char or wchar_t) to be scannable.\n"
5421
2.66M
                  "Examples of scannable ranges are std::string, "
5422
2.66M
                  "std::string_view, "
5423
2.66M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
2.66M
                  "See the scnlib documentation for more details.");
5425
5426
2.66M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
2.66M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
5380
218k
{
5381
218k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
218k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
218k
                  "\n"
5385
218k
                  "Unsupported range type given as input to a scanning "
5386
218k
                  "function.\n"
5387
218k
                  "A range needs to have a character type (value type) "
5388
218k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
218k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
218k
                  "to be included.\n"
5391
218k
                  "See the scnlib documentation for more details.");
5392
218k
    static_assert(
5393
218k
        !std::is_same_v<T, custom_char_traits>,
5394
218k
        "\n"
5395
218k
        "Unsupported range type given as input to a scanning "
5396
218k
        "function.\n"
5397
218k
        "String types (std::basic_string, and std::basic_string_view) "
5398
218k
        "need to use std::char_traits. Strings with custom Traits are "
5399
218k
        "not supported.");
5400
218k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
218k
                  "\n"
5402
218k
                  "Unsupported range type given as input to a scanning "
5403
218k
                  "function.\n"
5404
218k
                  "file_marker_found cannot be used as an "
5405
218k
                  "source range type to scn::scan.\n"
5406
218k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
218k
                  "and do not provide an explicit source range, "
5408
218k
                  "or use scn::scan with a FILE* directly.");
5409
218k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
218k
                  "\n"
5411
218k
                  "Unsupported range type given as input to a scanning "
5412
218k
                  "function.\n"
5413
218k
                  "In order to be scannable, a range needs to satisfy "
5414
218k
                  "`forward_range`. `input_range` is not sufficient.");
5415
218k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
218k
                  "\n"
5417
218k
                  "Unsupported range type given as input to a scanning "
5418
218k
                  "function.\n"
5419
218k
                  "A range needs to model forward_range and have a valid "
5420
218k
                  "character type (char or wchar_t) to be scannable.\n"
5421
218k
                  "Examples of scannable ranges are std::string, "
5422
218k
                  "std::string_view, "
5423
218k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
218k
                  "See the scnlib documentation for more details.");
5425
5426
218k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
218k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
5380
129k
{
5381
129k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
129k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
129k
                  "\n"
5385
129k
                  "Unsupported range type given as input to a scanning "
5386
129k
                  "function.\n"
5387
129k
                  "A range needs to have a character type (value type) "
5388
129k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
129k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
129k
                  "to be included.\n"
5391
129k
                  "See the scnlib documentation for more details.");
5392
129k
    static_assert(
5393
129k
        !std::is_same_v<T, custom_char_traits>,
5394
129k
        "\n"
5395
129k
        "Unsupported range type given as input to a scanning "
5396
129k
        "function.\n"
5397
129k
        "String types (std::basic_string, and std::basic_string_view) "
5398
129k
        "need to use std::char_traits. Strings with custom Traits are "
5399
129k
        "not supported.");
5400
129k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
129k
                  "\n"
5402
129k
                  "Unsupported range type given as input to a scanning "
5403
129k
                  "function.\n"
5404
129k
                  "file_marker_found cannot be used as an "
5405
129k
                  "source range type to scn::scan.\n"
5406
129k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
129k
                  "and do not provide an explicit source range, "
5408
129k
                  "or use scn::scan with a FILE* directly.");
5409
129k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
129k
                  "\n"
5411
129k
                  "Unsupported range type given as input to a scanning "
5412
129k
                  "function.\n"
5413
129k
                  "In order to be scannable, a range needs to satisfy "
5414
129k
                  "`forward_range`. `input_range` is not sufficient.");
5415
129k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
129k
                  "\n"
5417
129k
                  "Unsupported range type given as input to a scanning "
5418
129k
                  "function.\n"
5419
129k
                  "A range needs to model forward_range and have a valid "
5420
129k
                  "character type (char or wchar_t) to be scannable.\n"
5421
129k
                  "Examples of scannable ranges are std::string, "
5422
129k
                  "std::string_view, "
5423
129k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
129k
                  "See the scnlib documentation for more details.");
5425
5426
129k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
129k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
5380
1.54M
{
5381
1.54M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
1.54M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
1.54M
                  "\n"
5385
1.54M
                  "Unsupported range type given as input to a scanning "
5386
1.54M
                  "function.\n"
5387
1.54M
                  "A range needs to have a character type (value type) "
5388
1.54M
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
1.54M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
1.54M
                  "to be included.\n"
5391
1.54M
                  "See the scnlib documentation for more details.");
5392
1.54M
    static_assert(
5393
1.54M
        !std::is_same_v<T, custom_char_traits>,
5394
1.54M
        "\n"
5395
1.54M
        "Unsupported range type given as input to a scanning "
5396
1.54M
        "function.\n"
5397
1.54M
        "String types (std::basic_string, and std::basic_string_view) "
5398
1.54M
        "need to use std::char_traits. Strings with custom Traits are "
5399
1.54M
        "not supported.");
5400
1.54M
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
1.54M
                  "\n"
5402
1.54M
                  "Unsupported range type given as input to a scanning "
5403
1.54M
                  "function.\n"
5404
1.54M
                  "file_marker_found cannot be used as an "
5405
1.54M
                  "source range type to scn::scan.\n"
5406
1.54M
                  "To read from stdin, use scn::input or scn::prompt, "
5407
1.54M
                  "and do not provide an explicit source range, "
5408
1.54M
                  "or use scn::scan with a FILE* directly.");
5409
1.54M
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
1.54M
                  "\n"
5411
1.54M
                  "Unsupported range type given as input to a scanning "
5412
1.54M
                  "function.\n"
5413
1.54M
                  "In order to be scannable, a range needs to satisfy "
5414
1.54M
                  "`forward_range`. `input_range` is not sufficient.");
5415
1.54M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
1.54M
                  "\n"
5417
1.54M
                  "Unsupported range type given as input to a scanning "
5418
1.54M
                  "function.\n"
5419
1.54M
                  "A range needs to model forward_range and have a valid "
5420
1.54M
                  "character type (char or wchar_t) to be scannable.\n"
5421
1.54M
                  "Examples of scannable ranges are std::string, "
5422
1.54M
                  "std::string_view, "
5423
1.54M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
1.54M
                  "See the scnlib documentation for more details.");
5425
5426
1.54M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
1.54M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
5380
772k
{
5381
772k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
772k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
772k
                  "\n"
5385
772k
                  "Unsupported range type given as input to a scanning "
5386
772k
                  "function.\n"
5387
772k
                  "A range needs to have a character type (value type) "
5388
772k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
772k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
772k
                  "to be included.\n"
5391
772k
                  "See the scnlib documentation for more details.");
5392
772k
    static_assert(
5393
772k
        !std::is_same_v<T, custom_char_traits>,
5394
772k
        "\n"
5395
772k
        "Unsupported range type given as input to a scanning "
5396
772k
        "function.\n"
5397
772k
        "String types (std::basic_string, and std::basic_string_view) "
5398
772k
        "need to use std::char_traits. Strings with custom Traits are "
5399
772k
        "not supported.");
5400
772k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
772k
                  "\n"
5402
772k
                  "Unsupported range type given as input to a scanning "
5403
772k
                  "function.\n"
5404
772k
                  "file_marker_found cannot be used as an "
5405
772k
                  "source range type to scn::scan.\n"
5406
772k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
772k
                  "and do not provide an explicit source range, "
5408
772k
                  "or use scn::scan with a FILE* directly.");
5409
772k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
772k
                  "\n"
5411
772k
                  "Unsupported range type given as input to a scanning "
5412
772k
                  "function.\n"
5413
772k
                  "In order to be scannable, a range needs to satisfy "
5414
772k
                  "`forward_range`. `input_range` is not sufficient.");
5415
772k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
772k
                  "\n"
5417
772k
                  "Unsupported range type given as input to a scanning "
5418
772k
                  "function.\n"
5419
772k
                  "A range needs to model forward_range and have a valid "
5420
772k
                  "character type (char or wchar_t) to be scannable.\n"
5421
772k
                  "Examples of scannable ranges are std::string, "
5422
772k
                  "std::string_view, "
5423
772k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
772k
                  "See the scnlib documentation for more details.");
5425
5426
772k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
772k
}
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
5428
5429
template <
5430
    typename Range,
5431
    std::enable_if_t<
5432
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
5433
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
5434
auto make_scan_buffer(Range&&) = delete;
5435
}  // namespace detail
5436
5437
/////////////////////////////////////////////////////////////////
5438
// Argument type erasure
5439
/////////////////////////////////////////////////////////////////
5440
5441
namespace detail {
5442
enum class arg_type : unsigned char {
5443
    none_type,
5444
    schar_type,
5445
    short_type,
5446
    int_type,
5447
    long_type,
5448
    llong_type,
5449
    uchar_type,
5450
    ushort_type,
5451
    uint_type,
5452
    ulong_type,
5453
    ullong_type,
5454
    bool_type,
5455
    narrow_character_type,
5456
    wide_character_type,
5457
    code_point_type,
5458
    pointer_type,
5459
    float_type,
5460
    double_type,
5461
    ldouble_type,
5462
    narrow_string_view_type,
5463
    wide_string_view_type,
5464
    narrow_string_type,
5465
    wide_string_type,
5466
    narrow_regex_matches_type,
5467
    wide_regex_matches_type,
5468
    custom_type,
5469
    last_type = custom_type
5470
};
5471
5472
template <typename>
5473
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
5474
5475
template <typename T, typename CharT>
5476
struct arg_type_constant
5477
    : std::integral_constant<arg_type, arg_type::custom_type> {
5478
    using type = T;
5479
};
5480
5481
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
5482
    template <typename CharT>                             \
5483
    struct arg_type_constant<Type, CharT>                 \
5484
        : std::integral_constant<arg_type, arg_type::C> { \
5485
        using type = Type;                                \
5486
    };                                                    \
5487
    template <>                                           \
5488
    inline constexpr bool is_type_disabled<Type> = Disabled
5489
5490
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
5491
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
5492
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
5493
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
5494
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
5495
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
5496
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
5497
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
5498
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
5499
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
5500
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
5501
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
5502
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
5503
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
5504
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5505
SCN_TYPE_CONSTANT(const void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5506
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
5507
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
5508
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
5509
SCN_TYPE_CONSTANT(std::string_view,
5510
                  narrow_string_view_type,
5511
                  SCN_DISABLE_TYPE_STRING_VIEW);
5512
SCN_TYPE_CONSTANT(std::wstring_view,
5513
                  wide_string_view_type,
5514
                  SCN_DISABLE_TYPE_STRING_VIEW);
5515
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
5516
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
5517
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
5518
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
5519
5520
#undef SCN_TYPE_CONSTANT
5521
5522
struct custom_value_type {
5523
    void* value;
5524
    auto (*scan)(void* arg, void* pctx, void* ctx) -> scan_expected<void>;
5525
};
5526
5527
struct unscannable {};
5528
struct unscannable_char : unscannable {};
5529
struct unscannable_const : unscannable {};
5530
struct unscannable_disabled : unscannable {
5531
    unscannable_disabled() = default;
5532
5533
    template <typename T>
5534
    constexpr unscannable_disabled(T&&)
5535
    {
5536
    }
5537
};
5538
5539
struct needs_context_tag {};
5540
5541
template <typename Context>
5542
struct context_tag {
5543
    using type = Context;
5544
};
5545
5546
template <typename T, typename Context>
5547
struct custom_wrapper {
5548
    using context_type = Context;
5549
    T& val;
5550
};
5551
5552
template <typename T, typename Scanner, typename ParseCtx>
5553
scan_expected<void> parse_custom_arg(T& arg, Scanner& s, ParseCtx& pctx)
5554
{
5555
#if SCN_HAS_EXCEPTIONS
5556
    auto fmt_it = pctx.begin();
5557
    try {
5558
        fmt_it = s.parse(pctx);
5559
    }
5560
    catch (const detail::scan_format_string_error_base& ex) {
5561
        // scan_error takes a const char*.
5562
        // scan_format_string_error (or, actually, std::runtime_error)
5563
        // stores a reference-counted string,
5564
        // that will go out of scope here.
5565
        // We need to provide a const char* that will stay in scope.
5566
        // If scan_format_string_error was thrown with a string literal,
5567
        // use that, otherwise refer to a thread_local std::string
5568
        if (const char* m = get_internal_literal_msg(ex)) {
5569
            return unexpected_scan_error(scan_error::invalid_format_string, m);
5570
        }
5571
        thread_local std::string err_msg{};
5572
        err_msg = ex.what();
5573
        return unexpected_scan_error(scan_error::invalid_format_string,
5574
                                     err_msg.c_str());
5575
    }
5576
#else
5577
    auto fmt_it = s.parse(pctx_ref);
5578
#endif
5579
    if (auto e = pctx.get_error(); SCN_UNLIKELY(!e)) {
5580
        return e;
5581
    }
5582
    pctx.advance_to(fmt_it);
5583
    return {};
5584
}
5585
5586
class arg_value {
5587
public:
5588
    // trivial default initialization in constexpr
5589
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
5590
    SCN_STD > SCN_STD_20
5591
    constexpr
5592
#endif
5593
2.66M
    arg_value() = default;
5594
5595
    template <typename T>
5596
2.66M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
2.66M
    {
5598
2.66M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5596
238k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
238k
    {
5598
238k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5596
109k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
109k
    {
5598
109k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5596
1.54M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
1.54M
    {
5598
1.54M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5596
772k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
772k
    {
5598
772k
    }
Unexecuted instantiation: scn::v4::detail::arg_value::arg_value<double>(double&)
5599
5600
    template <typename T, typename Context>
5601
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
5602
        : custom_value{static_cast<void*>(&val.val),
5603
                       scan_custom_arg<T, Context>}
5604
    {
5605
    }
5606
5607
    arg_value(unscannable);
5608
    arg_value(unscannable_char);
5609
    arg_value(unscannable_const);
5610
    arg_value(unscannable_disabled);
5611
5612
    union {
5613
        void* ref_value{nullptr};
5614
        custom_value_type custom_value;
5615
    };
5616
5617
private:
5618
    template <typename T, typename Context>
5619
    static scan_expected<void> scan_custom_arg(void* arg, void* pctx, void* ctx)
5620
    {
5621
        static_assert(!is_type_disabled<T>,
5622
                      "Scanning of custom types is disabled by "
5623
                      "SCN_DISABLE_TYPE_CUSTOM");
5624
        SCN_EXPECT(arg && pctx && ctx);
5625
5626
        using context_type = Context;
5627
        using parse_context_type = typename context_type::parse_context_type;
5628
        using scanner_type = typename context_type::template scanner_type<T>;
5629
5630
        auto s = scanner_type{};
5631
5632
        auto& arg_ref = *static_cast<T*>(arg);
5633
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
5634
        auto& ctx_ref = *static_cast<context_type*>(ctx);
5635
5636
        SCN_TRY_DISCARD(parse_custom_arg(arg_ref, s, pctx_ref));
5637
        SCN_TRY(it, s.scan(arg_ref, ctx_ref));
5638
        ctx_ref.advance_to(SCN_MOVE(it));
5639
5640
        return {};
5641
    }
5642
};
5643
5644
template <typename CharT>
5645
struct arg_mapper {
5646
    using char_type = CharT;
5647
    using other_char_type =
5648
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
5649
5650
#define SCN_ARG_MAPPER(T)                                                    \
5651
    static auto map(T& val)                                                  \
5652
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
5653
2.66M
    {                                                                        \
5654
2.66M
        return val;                                                          \
5655
2.66M
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5653
238k
    {                                                                        \
5654
238k
        return val;                                                          \
5655
238k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5653
109k
    {                                                                        \
5654
109k
        return val;                                                          \
5655
109k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5653
1.54M
    {                                                                        \
5654
1.54M
        return val;                                                          \
5655
1.54M
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5653
772k
    {                                                                        \
5654
772k
        return val;                                                          \
5655
772k
    }
Unexecuted instantiation: scn::v4::detail::arg_mapper<char>::map(double&)
Unexecuted instantiation: scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5656
5657
    SCN_ARG_MAPPER(signed char)
5658
    SCN_ARG_MAPPER(short)
5659
    SCN_ARG_MAPPER(int)
5660
    SCN_ARG_MAPPER(long)
5661
    SCN_ARG_MAPPER(long long)
5662
    SCN_ARG_MAPPER(unsigned char)
5663
    SCN_ARG_MAPPER(unsigned short)
5664
    SCN_ARG_MAPPER(unsigned)
5665
    SCN_ARG_MAPPER(unsigned long)
5666
    SCN_ARG_MAPPER(unsigned long long)
5667
    SCN_ARG_MAPPER(wchar_t)
5668
    SCN_ARG_MAPPER(char32_t)
5669
    SCN_ARG_MAPPER(bool)
5670
    SCN_ARG_MAPPER(void*)
5671
    SCN_ARG_MAPPER(const void*)
5672
    SCN_ARG_MAPPER(float)
5673
    SCN_ARG_MAPPER(double)
5674
    SCN_ARG_MAPPER(long double)
5675
5676
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
5677
    SCN_ARG_MAPPER(std::string)
5678
    SCN_ARG_MAPPER(std::wstring)
5679
5680
#undef SCN_ARG_MAPPER
5681
5682
    static decltype(auto) map(char& val)
5683
    {
5684
        if constexpr (std::is_same_v<char_type, char> &&
5685
                      !is_type_disabled<char_type>) {
5686
            return val;
5687
        }
5688
        else if constexpr (is_type_disabled<char_type>) {
5689
            return unscannable_disabled{val};
5690
        }
5691
        else {
5692
            SCN_UNUSED(val);
5693
            return unscannable_char{};
5694
        }
5695
    }
5696
5697
    static decltype(auto) map(basic_regex_matches<char_type>& val)
5698
    {
5699
        if constexpr (is_type_disabled<char_type>) {
5700
            return unscannable_disabled{val};
5701
        }
5702
        else {
5703
            return val;
5704
        }
5705
    }
5706
5707
    static unscannable_char map(std::basic_string_view<other_char_type>&)
5708
    {
5709
        return {};
5710
    }
5711
    static unscannable_char map(basic_regex_matches<other_char_type>&)
5712
    {
5713
        return {};
5714
    }
5715
5716
    template <typename T,
5717
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5718
    static needs_context_tag map(T&)
5719
    {
5720
        return {};
5721
    }
5722
5723
    template <typename T,
5724
              typename Context,
5725
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5726
    static custom_wrapper<T, Context> map(T& val, context_tag<Context>)
5727
    {
5728
        return {val};
5729
    }
5730
5731
    static unscannable map(...)
5732
    {
5733
        return {};
5734
    }
5735
};
5736
5737
template <typename T, typename CharT>
5738
using mapped_type_constant = arg_type_constant<
5739
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5740
    CharT>;
5741
5742
template <typename T, typename CharT>
5743
using is_scannable = std::integral_constant<
5744
    bool,
5745
    !std::is_base_of_v<
5746
        unscannable,
5747
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5748
5749
constexpr std::size_t packed_arg_bits = 5;
5750
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5751
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5752
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5753
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5754
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5755
5756
template <typename>
5757
constexpr size_t encode_types_impl()
5758
0
{
5759
0
    return 0;
5760
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t>()
5761
template <typename CharT, typename T, typename... Others>
5762
constexpr size_t encode_types_impl()
5763
0
{
5764
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5765
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5766
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
5767
5768
template <typename CharT, typename... Ts>
5769
constexpr size_t encode_types()
5770
0
{
5771
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5772
0
        return sizeof...(Ts) |
5773
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5774
0
    }
5775
0
    else {
5776
0
        SCN_EXPECT(false);
5777
0
        SCN_UNREACHABLE;
5778
0
    }
5779
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
5780
5781
template <typename T, typename Arg>
5782
constexpr auto make_value_impl(Arg&& arg)
5783
2.66M
{
5784
2.66M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
2.66M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
2.66M
    constexpr bool scannable_char =
5788
2.66M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
2.66M
    static_assert(scannable_char,
5790
2.66M
                  "Cannot scan an argument of an unsupported character "
5791
2.66M
                  "type (i.e. char from a wchar_t source)");
5792
5793
2.66M
    constexpr bool scannable_const =
5794
2.66M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
2.66M
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
2.66M
    constexpr bool scannable_disabled =
5798
2.66M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
2.66M
    static_assert(scannable_disabled,
5800
2.66M
                  "Cannot scan an argument that has been disabled by "
5801
2.66M
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
2.66M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
2.66M
    static_assert(
5805
2.66M
        scannable,
5806
2.66M
        "Cannot scan an argument. To make a type T scannable, provide "
5807
2.66M
        "a scn::scanner<T, CharT> specialization.");
5808
5809
2.66M
    return arg_value{arg};
5810
2.66M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5783
238k
{
5784
238k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
238k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
238k
    constexpr bool scannable_char =
5788
238k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
238k
    static_assert(scannable_char,
5790
238k
                  "Cannot scan an argument of an unsupported character "
5791
238k
                  "type (i.e. char from a wchar_t source)");
5792
5793
238k
    constexpr bool scannable_const =
5794
238k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
238k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
238k
    constexpr bool scannable_disabled =
5798
238k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
238k
    static_assert(scannable_disabled,
5800
238k
                  "Cannot scan an argument that has been disabled by "
5801
238k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
238k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
238k
    static_assert(
5805
238k
        scannable,
5806
238k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
238k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
238k
    return arg_value{arg};
5810
238k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5783
109k
{
5784
109k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
109k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
109k
    constexpr bool scannable_char =
5788
109k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
109k
    static_assert(scannable_char,
5790
109k
                  "Cannot scan an argument of an unsupported character "
5791
109k
                  "type (i.e. char from a wchar_t source)");
5792
5793
109k
    constexpr bool scannable_const =
5794
109k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
109k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
109k
    constexpr bool scannable_disabled =
5798
109k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
109k
    static_assert(scannable_disabled,
5800
109k
                  "Cannot scan an argument that has been disabled by "
5801
109k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
109k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
109k
    static_assert(
5805
109k
        scannable,
5806
109k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
109k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
109k
    return arg_value{arg};
5810
109k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5783
1.54M
{
5784
1.54M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
1.54M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
1.54M
    constexpr bool scannable_char =
5788
1.54M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
1.54M
    static_assert(scannable_char,
5790
1.54M
                  "Cannot scan an argument of an unsupported character "
5791
1.54M
                  "type (i.e. char from a wchar_t source)");
5792
5793
1.54M
    constexpr bool scannable_const =
5794
1.54M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
1.54M
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
1.54M
    constexpr bool scannable_disabled =
5798
1.54M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
1.54M
    static_assert(scannable_disabled,
5800
1.54M
                  "Cannot scan an argument that has been disabled by "
5801
1.54M
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
1.54M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
1.54M
    static_assert(
5805
1.54M
        scannable,
5806
1.54M
        "Cannot scan an argument. To make a type T scannable, provide "
5807
1.54M
        "a scn::scanner<T, CharT> specialization.");
5808
5809
1.54M
    return arg_value{arg};
5810
1.54M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5783
772k
{
5784
772k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
772k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
772k
    constexpr bool scannable_char =
5788
772k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
772k
    static_assert(scannable_char,
5790
772k
                  "Cannot scan an argument of an unsupported character "
5791
772k
                  "type (i.e. char from a wchar_t source)");
5792
5793
772k
    constexpr bool scannable_const =
5794
772k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
772k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
772k
    constexpr bool scannable_disabled =
5798
772k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
772k
    static_assert(scannable_disabled,
5800
772k
                  "Cannot scan an argument that has been disabled by "
5801
772k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
772k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
772k
    static_assert(
5805
772k
        scannable,
5806
772k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
772k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
772k
    return arg_value{arg};
5810
772k
}
Unexecuted instantiation: auto scn::v4::detail::make_value_impl<double, double&>(double&)
5811
5812
template <typename Context, typename T>
5813
constexpr auto make_value(T& value)
5814
2.66M
{
5815
2.66M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
2.66M
                                  needs_context_tag>) {
5819
2.66M
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
2.66M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5814
238k
{
5815
238k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
238k
                                  needs_context_tag>) {
5819
238k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
238k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5814
109k
{
5815
109k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
109k
                                  needs_context_tag>) {
5819
109k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
109k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5814
1.54M
{
5815
1.54M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
1.54M
                                  needs_context_tag>) {
5819
1.54M
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
1.54M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5814
772k
{
5815
772k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
772k
                                  needs_context_tag>) {
5819
772k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
772k
}
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(double&)
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5826
5827
template <typename... Args>
5828
constexpr bool check_scan_arg_types()
5829
2.66M
{
5830
2.66M
    constexpr bool default_constructible_constraint =
5831
2.66M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
2.66M
    static_assert(default_constructible_constraint,
5833
2.66M
                  "Scan argument types must be default constructible");
5834
5835
2.66M
    constexpr bool destructible_constraint =
5836
2.66M
        std::conjunction_v<std::is_destructible<Args>...>;
5837
2.66M
    static_assert(destructible_constraint,
5838
2.66M
                  "Scan argument types must be Destructible");
5839
5840
2.66M
    constexpr bool non_reference_constraint =
5841
2.66M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
2.66M
    static_assert(non_reference_constraint,
5843
2.66M
                  "Scan argument types must not be references");
5844
5845
2.66M
    constexpr bool movable_constraint =
5846
2.66M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
2.66M
    static_assert(movable_constraint,
5848
2.66M
                  "Scan argument types must be move constructible");
5849
5850
2.66M
    return default_constructible_constraint && destructible_constraint &&
5851
2.66M
           non_reference_constraint && movable_constraint;
5852
2.66M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5829
238k
{
5830
238k
    constexpr bool default_constructible_constraint =
5831
238k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
238k
    static_assert(default_constructible_constraint,
5833
238k
                  "Scan argument types must be default constructible");
5834
5835
238k
    constexpr bool destructible_constraint =
5836
238k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
238k
    static_assert(destructible_constraint,
5838
238k
                  "Scan argument types must be Destructible");
5839
5840
238k
    constexpr bool non_reference_constraint =
5841
238k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
238k
    static_assert(non_reference_constraint,
5843
238k
                  "Scan argument types must not be references");
5844
5845
238k
    constexpr bool movable_constraint =
5846
238k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
238k
    static_assert(movable_constraint,
5848
238k
                  "Scan argument types must be move constructible");
5849
5850
238k
    return default_constructible_constraint && destructible_constraint &&
5851
238k
           non_reference_constraint && movable_constraint;
5852
238k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5829
109k
{
5830
109k
    constexpr bool default_constructible_constraint =
5831
109k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
109k
    static_assert(default_constructible_constraint,
5833
109k
                  "Scan argument types must be default constructible");
5834
5835
109k
    constexpr bool destructible_constraint =
5836
109k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
109k
    static_assert(destructible_constraint,
5838
109k
                  "Scan argument types must be Destructible");
5839
5840
109k
    constexpr bool non_reference_constraint =
5841
109k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
109k
    static_assert(non_reference_constraint,
5843
109k
                  "Scan argument types must not be references");
5844
5845
109k
    constexpr bool movable_constraint =
5846
109k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
109k
    static_assert(movable_constraint,
5848
109k
                  "Scan argument types must be move constructible");
5849
5850
109k
    return default_constructible_constraint && destructible_constraint &&
5851
109k
           non_reference_constraint && movable_constraint;
5852
109k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5829
1.54M
{
5830
1.54M
    constexpr bool default_constructible_constraint =
5831
1.54M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
1.54M
    static_assert(default_constructible_constraint,
5833
1.54M
                  "Scan argument types must be default constructible");
5834
5835
1.54M
    constexpr bool destructible_constraint =
5836
1.54M
        std::conjunction_v<std::is_destructible<Args>...>;
5837
1.54M
    static_assert(destructible_constraint,
5838
1.54M
                  "Scan argument types must be Destructible");
5839
5840
1.54M
    constexpr bool non_reference_constraint =
5841
1.54M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
1.54M
    static_assert(non_reference_constraint,
5843
1.54M
                  "Scan argument types must not be references");
5844
5845
1.54M
    constexpr bool movable_constraint =
5846
1.54M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
1.54M
    static_assert(movable_constraint,
5848
1.54M
                  "Scan argument types must be move constructible");
5849
5850
1.54M
    return default_constructible_constraint && destructible_constraint &&
5851
1.54M
           non_reference_constraint && movable_constraint;
5852
1.54M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5829
772k
{
5830
772k
    constexpr bool default_constructible_constraint =
5831
772k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
772k
    static_assert(default_constructible_constraint,
5833
772k
                  "Scan argument types must be default constructible");
5834
5835
772k
    constexpr bool destructible_constraint =
5836
772k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
772k
    static_assert(destructible_constraint,
5838
772k
                  "Scan argument types must be Destructible");
5839
5840
772k
    constexpr bool non_reference_constraint =
5841
772k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
772k
    static_assert(non_reference_constraint,
5843
772k
                  "Scan argument types must not be references");
5844
5845
772k
    constexpr bool movable_constraint =
5846
772k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
772k
    static_assert(movable_constraint,
5848
772k
                  "Scan argument types must be move constructible");
5849
5850
772k
    return default_constructible_constraint && destructible_constraint &&
5851
772k
           non_reference_constraint && movable_constraint;
5852
772k
}
Unexecuted instantiation: bool scn::v4::detail::check_scan_arg_types<double>()
5853
5854
enum class scan_arg_store_kind {
5855
    // only built-in types (no custom types), packed
5856
    builtin,
5857
5858
    packed,
5859
    unpacked
5860
};
5861
5862
template <typename Context, typename T>
5863
constexpr basic_scan_arg<Context> make_arg(T& value)
5864
519k
{
5865
519k
    check_scan_arg_types<T>();
5866
5867
519k
    basic_scan_arg<Context> arg;
5868
519k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
519k
    arg.m_value = make_value<Context>(value);
5870
519k
    return arg;
5871
519k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5864
44.5k
{
5865
44.5k
    check_scan_arg_types<T>();
5866
5867
44.5k
    basic_scan_arg<Context> arg;
5868
44.5k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
44.5k
    arg.m_value = make_value<Context>(value);
5870
44.5k
    return arg;
5871
44.5k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5864
20.3k
{
5865
20.3k
    check_scan_arg_types<T>();
5866
5867
20.3k
    basic_scan_arg<Context> arg;
5868
20.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
20.3k
    arg.m_value = make_value<Context>(value);
5870
20.3k
    return arg;
5871
20.3k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5864
303k
{
5865
303k
    check_scan_arg_types<T>();
5866
5867
303k
    basic_scan_arg<Context> arg;
5868
303k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
303k
    arg.m_value = make_value<Context>(value);
5870
303k
    return arg;
5871
303k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5864
151k
{
5865
151k
    check_scan_arg_types<T>();
5866
5867
151k
    basic_scan_arg<Context> arg;
5868
151k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
151k
    arg.m_value = make_value<Context>(value);
5870
151k
    return arg;
5871
151k
}
5872
5873
template <scan_arg_store_kind Kind,
5874
          typename Context,
5875
          arg_type,
5876
          typename T,
5877
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5878
constexpr void* make_arg(T& value)
5879
2.14M
{
5880
2.14M
    return make_value<Context>(value).ref_value;
5881
2.14M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5879
193k
{
5880
193k
    return make_value<Context>(value).ref_value;
5881
193k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5879
89.1k
{
5880
89.1k
    return make_value<Context>(value).ref_value;
5881
89.1k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5879
1.24M
{
5880
1.24M
    return make_value<Context>(value).ref_value;
5881
1.24M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5879
620k
{
5880
620k
    return make_value<Context>(value).ref_value;
5881
620k
}
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)17, double, void>(double&)
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5882
template <scan_arg_store_kind Kind,
5883
          typename Context,
5884
          arg_type,
5885
          typename T,
5886
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5887
constexpr arg_value make_arg(T& value)
5888
{
5889
    return make_value<Context>(value);
5890
}
5891
template <scan_arg_store_kind Kind,
5892
          typename Context,
5893
          arg_type,
5894
          typename T,
5895
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5896
constexpr basic_scan_arg<Context> make_arg(T&& value)
5897
{
5898
    return make_arg<Context>(SCN_FWD(value));
5899
}
5900
5901
template <typename Context>
5902
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5903
template <typename Context>
5904
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg);
5905
5906
template <typename Context>
5907
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg);
5908
template <typename Context>
5909
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg);
5910
5911
template <typename Visitor, typename Context>
5912
constexpr decltype(auto) visit_impl(Visitor&& vis,
5913
                                    basic_scan_arg<Context>& arg);
5914
}  // namespace detail
5915
5916
/**
5917
 * Type-erased scanning argument.
5918
 *
5919
 * Contains a pointer to the value contained in a `scan_arg_store`.
5920
 */
5921
template <typename Context>
5922
class basic_scan_arg {
5923
public:
5924
    /**
5925
     * Enables scanning of a user-defined type.
5926
     *
5927
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5928
     * a callback for parsing the format string, and scanning the value.
5929
     *
5930
     * \see scn::visit_scan_arg
5931
     */
5932
    class handle {
5933
    public:
5934
        /**
5935
         * Parse the format string in `parse_ctx`, and scan the value from
5936
         * `ctx`.
5937
         *
5938
         * \return Any error returned by the scanner
5939
         */
5940
        scan_expected<void> scan(
5941
            typename Context::parse_context_type& parse_ctx,
5942
            Context& ctx) const
5943
0
        {
5944
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5945
0
        }
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::scan(scn::v4::basic_scan_parse_context<char>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>&) const
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::scan(scn::v4::basic_scan_parse_context<wchar_t>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>&) const
5946
5947
    private:
5948
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::handle(scn::v4::detail::custom_value_type)
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::handle(scn::v4::detail::custom_value_type)
5949
5950
        template <typename Visitor, typename C>
5951
        friend constexpr decltype(auto) detail::visit_impl(
5952
            Visitor&& vis,
5953
            basic_scan_arg<C>& arg);
5954
5955
        detail::custom_value_type m_custom;
5956
    };
5957
5958
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5959
2.66M
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_arg()
Line
Count
Source
5959
347k
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_arg()
Line
Count
Source
5959
2.31M
    constexpr basic_scan_arg() = default;
5960
5961
    /**
5962
     * @return `true` if `*this` contains an argument
5963
     */
5964
    constexpr explicit operator bool() const noexcept
5965
3.73M
    {
5966
3.73M
        return m_type != detail::arg_type::none_type;
5967
3.73M
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::operator bool() const
Line
Count
Source
5965
490k
    {
5966
490k
        return m_type != detail::arg_type::none_type;
5967
490k
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::operator bool() const
Line
Count
Source
5965
3.24M
    {
5966
3.24M
        return m_type != detail::arg_type::none_type;
5967
3.24M
    }
5968
5969
    /**
5970
     * Visit a `basic_scan_arg` with `Visitor`.
5971
     * Calls `vis` with the value stored in `*this`.
5972
     * If no value is contained in `*this`, calls `vis` with a `monostate`.
5973
     *
5974
     * \return `vis(x)`, where `x` is either a reference to the value contained
5975
     * in `*this`, or a `basic_scan_arg::handle`.
5976
     */
5977
    template <typename Visitor>
5978
    constexpr decltype(auto) visit(Visitor&& vis);
5979
5980
    template <typename R, typename Visitor>
5981
    constexpr R visit(Visitor&& vis);
5982
5983
private:
5984
    template <typename ContextType, typename T>
5985
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5986
5987
    template <typename C>
5988
    friend constexpr detail::arg_type& detail::get_arg_type(
5989
        basic_scan_arg<C>& arg);
5990
    template <typename C>
5991
    friend constexpr detail::arg_type detail::get_arg_type(
5992
        const basic_scan_arg<C>& arg);
5993
5994
    template <typename C>
5995
    friend constexpr detail::arg_value& detail::get_arg_value(
5996
        basic_scan_arg<C>& arg);
5997
    template <typename C>
5998
    friend constexpr detail::arg_value detail::get_arg_value(
5999
        const basic_scan_arg<C>& arg);
6000
6001
    friend class basic_scan_args<Context>;
6002
6003
    detail::arg_value m_value{};
6004
    detail::arg_type m_type{detail::arg_type::none_type};
6005
};
6006
6007
namespace detail {
6008
template <typename Context>
6009
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg)
6010
4.84M
{
6011
4.84M
    return arg.m_type;
6012
4.84M
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6010
643k
{
6011
643k
    return arg.m_type;
6012
643k
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6010
4.20M
{
6011
4.20M
    return arg.m_type;
6012
4.20M
}
6013
6014
template <typename Context>
6015
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg)
6016
{
6017
    return arg.m_type;
6018
}
6019
6020
template <typename Context>
6021
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
6022
2.63M
{
6023
2.63M
    return arg.m_value;
6024
2.63M
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6022
337k
{
6023
337k
    return arg.m_value;
6024
337k
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6022
2.29M
{
6023
2.29M
    return arg.m_value;
6024
2.29M
}
6025
6026
template <typename Context>
6027
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg)
6028
{
6029
    return arg.m_value;
6030
}
6031
6032
template <typename CharT>
6033
constexpr bool all_types_builtin()
6034
0
{
6035
0
    return true;
6036
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t>()
6037
template <typename CharT, typename T, typename... Args>
6038
constexpr bool all_types_builtin()
6039
0
{
6040
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
6041
0
           all_types_builtin<CharT, Args...>();
6042
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
6043
6044
template <typename CharT, typename... Args>
6045
constexpr scan_arg_store_kind determine_arg_store_kind()
6046
0
{
6047
0
    if (sizeof...(Args) > max_packed_args) {
6048
0
        return scan_arg_store_kind::unpacked;
6049
0
    }
6050
0
#if !(SCN_CLANG && SCN_APPLE)
6051
0
    // This doesn't work on Apple Clang. I don't know why
6052
0
    if (all_types_builtin<CharT, Args...>()) {
6053
0
        return scan_arg_store_kind::builtin;
6054
0
    }
6055
0
#endif
6056
0
    return scan_arg_store_kind::packed;
6057
0
}
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
6058
6059
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
6060
constexpr size_t compute_arg_store_desc()
6061
0
{
6062
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
6063
0
        return encode_types<CharT, Args...>();
6064
0
    }
6065
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
6066
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
6067
0
    }
6068
0
    else {
6069
0
        return sizeof...(Args) | is_unpacked_bit;
6070
0
    }
6071
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
6072
6073
template <typename Context, typename... Args>
6074
class scan_arg_store {
6075
public:
6076
    static constexpr scan_arg_store_kind kind =
6077
        determine_arg_store_kind<typename Context::char_type, Args...>();
6078
    static constexpr size_t desc =
6079
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
6080
6081
    using argptr_type = std::conditional_t<
6082
        kind == scan_arg_store_kind::builtin,
6083
        void*,
6084
        std::conditional_t<kind == scan_arg_store_kind::packed,
6085
                           arg_value,
6086
                           basic_scan_arg<Context>>>;
6087
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
6088
6089
    constexpr explicit scan_arg_store(std::tuple<Args...>& args)
6090
2.14M
        : args(std::apply(make_argptrs<Args...>, args))
6091
2.14M
    {
6092
2.14M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6090
193k
        : args(std::apply(make_argptrs<Args...>, args))
6091
193k
    {
6092
193k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6090
89.1k
        : args(std::apply(make_argptrs<Args...>, args))
6091
89.1k
    {
6092
89.1k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6090
1.24M
        : args(std::apply(make_argptrs<Args...>, args))
6091
1.24M
    {
6092
1.24M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6090
620k
        : args(std::apply(make_argptrs<Args...>, args))
6091
620k
    {
6092
620k
    }
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::scan_arg_store(std::__1::tuple<double>&)
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
6093
6094
    argptrs_type args;
6095
6096
private:
6097
    template <typename... A>
6098
    static constexpr argptrs_type make_argptrs(A&... args)
6099
2.14M
    {
6100
2.14M
        return {detail::make_arg<
6101
2.14M
            kind, Context,
6102
2.14M
            mapped_type_constant<remove_cvref_t<A>,
6103
2.14M
                                 typename Context::char_type>::value>(args)...};
6104
2.14M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6099
193k
    {
6100
193k
        return {detail::make_arg<
6101
193k
            kind, Context,
6102
193k
            mapped_type_constant<remove_cvref_t<A>,
6103
193k
                                 typename Context::char_type>::value>(args)...};
6104
193k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
6099
89.1k
    {
6100
89.1k
        return {detail::make_arg<
6101
89.1k
            kind, Context,
6102
89.1k
            mapped_type_constant<remove_cvref_t<A>,
6103
89.1k
                                 typename Context::char_type>::value>(args)...};
6104
89.1k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6099
1.24M
    {
6100
1.24M
        return {detail::make_arg<
6101
1.24M
            kind, Context,
6102
1.24M
            mapped_type_constant<remove_cvref_t<A>,
6103
1.24M
                                 typename Context::char_type>::value>(args)...};
6104
1.24M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
6099
620k
    {
6100
620k
        return {detail::make_arg<
6101
620k
            kind, Context,
6102
620k
            mapped_type_constant<remove_cvref_t<A>,
6103
620k
                                 typename Context::char_type>::value>(args)...};
6104
620k
    }
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::make_argptrs<double>(double&)
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
6105
};
6106
6107
}  // namespace detail
6108
6109
/**
6110
 * Creates a type-erased argument store over the arguments in `values`.
6111
 */
6112
template <typename Context = scan_context, typename... Args>
6113
constexpr auto make_scan_args(std::tuple<Args...>& values)
6114
2.14M
{
6115
2.14M
    detail::check_scan_arg_types<Args...>();
6116
2.14M
    return detail::scan_arg_store<Context, Args...>(values);
6117
2.14M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6114
193k
{
6115
193k
    detail::check_scan_arg_types<Args...>();
6116
193k
    return detail::scan_arg_store<Context, Args...>(values);
6117
193k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6114
89.1k
{
6115
89.1k
    detail::check_scan_arg_types<Args...>();
6116
89.1k
    return detail::scan_arg_store<Context, Args...>(values);
6117
89.1k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6114
1.24M
{
6115
1.24M
    detail::check_scan_arg_types<Args...>();
6116
1.24M
    return detail::scan_arg_store<Context, Args...>(values);
6117
1.24M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6114
620k
{
6115
620k
    detail::check_scan_arg_types<Args...>();
6116
620k
    return detail::scan_arg_store<Context, Args...>(values);
6117
620k
}
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(std::__1::tuple<double>&)
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
6118
6119
template <typename... Args>
6120
constexpr auto make_wscan_args(std::tuple<Args...>& values)
6121
{
6122
    detail::check_scan_arg_types<Args...>();
6123
    return detail::scan_arg_store<wscan_context, Args...>(values);
6124
}
6125
6126
/**
6127
 * A view over a collection of scanning arguments (`scan_arg_store`).
6128
 *
6129
 * Passed to `scn::vscan`, where it's automatically constructed from a
6130
 * `scan_arg_store`.
6131
 */
6132
template <typename Context>
6133
class basic_scan_args {
6134
public:
6135
519k
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args()
Line
Count
Source
6135
64.9k
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args()
Line
Count
Source
6135
454k
    constexpr basic_scan_args() = default;
6136
6137
    template <typename... Args>
6138
    SCN_IMPLICIT constexpr basic_scan_args(
6139
        const detail::scan_arg_store<Context, Args...>& store)
6140
2.14M
        : basic_scan_args(store.desc, store.args.data())
6141
2.14M
    {
6142
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
6140
193k
        : basic_scan_args(store.desc, store.args.data())
6141
193k
    {
6142
193k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > const&)
Line
Count
Source
6140
89.1k
        : basic_scan_args(store.desc, store.args.data())
6141
89.1k
    {
6142
89.1k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Line
Count
Source
6140
1.24M
        : basic_scan_args(store.desc, store.args.data())
6141
1.24M
    {
6142
1.24M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > const&)
Line
Count
Source
6140
620k
        : basic_scan_args(store.desc, store.args.data())
6141
620k
    {
6142
620k
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<double>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double> const&)
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
6143
6144
    /**
6145
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
6146
     * there's no argument at index `id`.
6147
     */
6148
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
6149
2.14M
    {
6150
2.14M
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
2.14M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
2.14M
        const auto t = type(id);
6162
2.14M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
2.14M
        basic_scan_arg<Context> arg;
6167
2.14M
        arg.m_type = t;
6168
2.14M
        if (is_only_builtin()) {
6169
2.14M
            arg.m_value.ref_value = m_builtin_values[id];
6170
2.14M
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
2.14M
        return arg;
6175
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::get(unsigned long) const
Line
Count
Source
6149
282k
    {
6150
282k
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
282k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
282k
        const auto t = type(id);
6162
282k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
282k
        basic_scan_arg<Context> arg;
6167
282k
        arg.m_type = t;
6168
282k
        if (is_only_builtin()) {
6169
282k
            arg.m_value.ref_value = m_builtin_values[id];
6170
282k
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
282k
        return arg;
6175
282k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::get(unsigned long) const
Line
Count
Source
6149
1.86M
    {
6150
1.86M
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
1.86M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
1.86M
        const auto t = type(id);
6162
1.86M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
1.86M
        basic_scan_arg<Context> arg;
6167
1.86M
        arg.m_type = t;
6168
1.86M
        if (is_only_builtin()) {
6169
1.86M
            arg.m_value.ref_value = m_builtin_values[id];
6170
1.86M
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
1.86M
        return arg;
6175
1.86M
    }
6176
6177
    /**
6178
     * \return Number of arguments in `*this`.
6179
     */
6180
    SCN_NODISCARD constexpr std::size_t size() const
6181
2.14M
    {
6182
2.14M
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
2.14M
        return static_cast<std::size_t>(m_desc &
6187
2.14M
                                        ((1 << detail::packed_arg_bits) - 1));
6188
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::size() const
Line
Count
Source
6181
282k
    {
6182
282k
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
282k
        return static_cast<std::size_t>(m_desc &
6187
282k
                                        ((1 << detail::packed_arg_bits) - 1));
6188
282k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::size() const
Line
Count
Source
6181
1.86M
    {
6182
1.86M
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
1.86M
        return static_cast<std::size_t>(m_desc &
6187
1.86M
                                        ((1 << detail::packed_arg_bits) - 1));
6188
1.86M
    }
6189
6190
private:
6191
    constexpr explicit basic_scan_args(size_t desc, void* const* data)
6192
2.14M
        : m_desc(desc), m_builtin_values(data)
6193
2.14M
    {
6194
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6192
282k
        : m_desc(desc), m_builtin_values(data)
6193
282k
    {
6194
282k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6192
1.86M
        : m_desc(desc), m_builtin_values(data)
6193
1.86M
    {
6194
1.86M
    }
6195
    constexpr explicit basic_scan_args(size_t desc,
6196
                                       const detail::arg_value* data)
6197
        : m_desc(desc), m_values(data)
6198
    {
6199
    }
6200
    constexpr explicit basic_scan_args(size_t desc,
6201
                                       const basic_scan_arg<Context>* data)
6202
        : m_desc(desc), m_args(data)
6203
    {
6204
    }
6205
6206
    SCN_NODISCARD constexpr bool is_packed() const
6207
4.29M
    {
6208
4.29M
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
4.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_packed() const
Line
Count
Source
6207
565k
    {
6208
565k
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
565k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_packed() const
Line
Count
Source
6207
3.72M
    {
6208
3.72M
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
3.72M
    }
6210
    SCN_NODISCARD constexpr bool is_only_builtin() const
6211
2.14M
    {
6212
2.14M
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_only_builtin() const
Line
Count
Source
6211
282k
    {
6212
282k
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
282k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_only_builtin() const
Line
Count
Source
6211
1.86M
    {
6212
1.86M
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
1.86M
    }
6214
6215
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
6216
2.14M
    {
6217
        // First (0th) index is size, types start after that
6218
2.14M
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
2.14M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
2.14M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
2.14M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::type(unsigned long) const
Line
Count
Source
6216
282k
    {
6217
        // First (0th) index is size, types start after that
6218
282k
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
282k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
282k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
282k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::type(unsigned long) const
Line
Count
Source
6216
1.86M
    {
6217
        // First (0th) index is size, types start after that
6218
1.86M
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
1.86M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
1.86M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
1.86M
    }
6222
6223
    SCN_NODISCARD constexpr std::size_t max_size() const
6224
0
    {
6225
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
6226
0
                                       : (m_desc & ~detail::is_unpacked_bit &
6227
0
                                          ~detail::has_custom_types_bit);
6228
0
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::max_size() const
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::max_size() const
6229
6230
    size_t m_desc{0};
6231
    union {
6232
        void* const* m_builtin_values;
6233
        const detail::arg_value* m_values;
6234
        const basic_scan_arg<Context>* m_args{nullptr};
6235
    };
6236
};
6237
6238
/////////////////////////////////////////////////////////////////
6239
// scan_parse_context
6240
/////////////////////////////////////////////////////////////////
6241
6242
template <typename T>
6243
struct source_tag_type {
6244
    using type = T;
6245
};
6246
template <typename T>
6247
inline constexpr auto source_tag = source_tag_type<T>{};
6248
6249
/**
6250
 * Format string parsing context, wrapping the format string being parsed,
6251
 * and a counter for argument indexing.
6252
 *
6253
 * \ingroup ctx
6254
 */
6255
template <typename CharT>
6256
class basic_scan_parse_context {
6257
public:
6258
    using char_type = CharT;
6259
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
6260
    using const_iterator = iterator;
6261
6262
    /**
6263
     * Construct a `basic_scan_parse_context` over a format string `format`.
6264
     */
6265
    [[deprecated(
6266
        "Use the source_tag constructor instead,"
6267
        "to get more compile-time checking")]] explicit constexpr
6268
    basic_scan_parse_context(std::basic_string_view<CharT> format,
6269
                             int next_arg_id = 0)
6270
        : m_format{format}, m_next_arg_id{next_arg_id}
6271
    {
6272
    }
6273
6274
    template <typename Source>
6275
    explicit constexpr basic_scan_parse_context(
6276
        source_tag_type<Source>,
6277
        std::basic_string_view<CharT> format,
6278
        int next_arg_id = 0)
6279
1.10M
        : m_format{format},
6280
1.10M
          m_next_arg_id{next_arg_id},
6281
1.10M
          m_is_contiguous(ranges::range<Source> &&
6282
1.10M
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
1.10M
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
1.10M
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
1.10M
    {
6287
1.10M
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
6279
96.8k
        : m_format{format},
6280
96.8k
          m_next_arg_id{next_arg_id},
6281
96.8k
          m_is_contiguous(ranges::range<Source> &&
6282
96.8k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
96.8k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
96.8k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
96.8k
    {
6287
96.8k
    }
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<char>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<char>&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
6279
56.2k
        : m_format{format},
6280
56.2k
          m_next_arg_id{next_arg_id},
6281
56.2k
          m_is_contiguous(ranges::range<Source> &&
6282
56.2k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
56.2k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
56.2k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
56.2k
    {
6287
56.2k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
6279
634k
        : m_format{format},
6280
634k
          m_next_arg_id{next_arg_id},
6281
634k
          m_is_contiguous(ranges::range<Source> &&
6282
634k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
634k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
634k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
634k
    {
6287
634k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<wchar_t>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<wchar_t>&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
6279
317k
        : m_format{format},
6280
317k
          m_next_arg_id{next_arg_id},
6281
317k
          m_is_contiguous(ranges::range<Source> &&
6282
317k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
317k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
317k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
317k
    {
6287
317k
    }
6288
6289
    basic_scan_parse_context(const basic_scan_parse_context&) = delete;
6290
    basic_scan_parse_context& operator=(const basic_scan_parse_context&) =
6291
        delete;
6292
    basic_scan_parse_context(basic_scan_parse_context&&) = delete;
6293
    basic_scan_parse_context& operator=(basic_scan_parse_context&&) = delete;
6294
    ~basic_scan_parse_context() = default;
6295
6296
    /// Returns an iterator pointing to the beginning of the format string
6297
    constexpr auto begin() const noexcept
6298
2.17M
    {
6299
2.17M
        return m_format.data();
6300
2.17M
    }
scn::v4::basic_scan_parse_context<char>::begin() const
Line
Count
Source
6298
295k
    {
6299
295k
        return m_format.data();
6300
295k
    }
scn::v4::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
6298
1.88M
    {
6299
1.88M
        return m_format.data();
6300
1.88M
    }
6301
    /// Returns an iterator pointing to the end of the format string
6302
    constexpr auto end() const noexcept
6303
    {
6304
        return m_format.data() + m_format.size();
6305
    }
6306
6307
    /// Advance the beginning of the format string to `it`
6308
    constexpr void advance_to(iterator it)
6309
1.07M
    {
6310
1.07M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
1.07M
    }
scn::v4::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
6309
142k
    {
6310
142k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
142k
    }
scn::v4::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
6309
931k
    {
6310
931k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
931k
    }
6312
6313
    constexpr size_t next_arg_id()
6314
1.10M
    {
6315
1.10M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
1.10M
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
1.10M
        do_check_arg_id(id);
6323
1.10M
        return id;
6324
1.10M
    }
scn::v4::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
6314
153k
    {
6315
153k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
153k
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
153k
        do_check_arg_id(id);
6323
153k
        return id;
6324
153k
    }
scn::v4::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
6314
952k
    {
6315
952k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
952k
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
952k
        do_check_arg_id(id);
6323
952k
        return id;
6324
952k
    }
6325
6326
    constexpr void check_arg_id(std::size_t id)
6327
0
    {
6328
0
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
6329
0
            on_error(
6330
0
                "Cannot switch from manual to automatic argument indexing");
6331
0
            return;
6332
0
        }
6333
0
        m_next_arg_id = -1;
6334
0
        do_check_arg_id(id);
6335
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
6336
6337
    /**
6338
     * Fail format string parsing with the message `msg`.
6339
     * Calling this member function is not a constant expression,
6340
     * causing a compile-time error, if compile-time format string checking is
6341
     * enabled.
6342
     */
6343
    scan_error on_error(const char* msg)
6344
0
    {
6345
0
        m_error = unexpected(detail::handle_error(
6346
0
            scan_error{scan_error::invalid_format_string, msg}));
6347
0
        return m_error.error();
6348
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::on_error(char const*)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::on_error(char const*)
6349
6350
    scan_expected<void> get_error()
6351
    {
6352
        return m_error;
6353
    }
6354
6355
    [[nodiscard]] constexpr bool is_source_contiguous() const
6356
    {
6357
        return m_is_contiguous;
6358
    }
6359
6360
    [[nodiscard]] constexpr bool is_source_borrowed() const
6361
    {
6362
        return m_is_borrowed;
6363
    }
6364
6365
protected:
6366
    constexpr void do_check_arg_id(size_t id);
6367
6368
    std::basic_string_view<CharT> m_format;
6369
    scan_expected<void> m_error{};
6370
    int m_next_arg_id{0};
6371
    bool m_is_contiguous{false}, m_is_borrowed{false};
6372
};
6373
6374
/////////////////////////////////////////////////////////////////
6375
// Result types
6376
/////////////////////////////////////////////////////////////////
6377
6378
namespace detail {
6379
template <typename... Args>
6380
struct scan_result_value_storage {
6381
public:
6382
    using tuple_type = std::tuple<Args...>;
6383
6384
2.66M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage()
Line
Count
Source
6384
238k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage()
Line
Count
Source
6384
109k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6384
1.54M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6384
772k
    constexpr scan_result_value_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::scan_result_value_storage()
6385
6386
    constexpr scan_result_value_storage(tuple_type&& values)
6387
        : m_values(SCN_MOVE(values))
6388
    {
6389
    }
6390
6391
    /// Access the scanned values
6392
    tuple_type& values() &
6393
2.14M
    {
6394
2.14M
        return m_values;
6395
2.14M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::values() &
Line
Count
Source
6393
193k
    {
6394
193k
        return m_values;
6395
193k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::values() &
Line
Count
Source
6393
89.1k
    {
6394
89.1k
        return m_values;
6395
89.1k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::values() &
Line
Count
Source
6393
1.24M
    {
6394
1.24M
        return m_values;
6395
1.24M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::values() &
Line
Count
Source
6393
620k
    {
6394
620k
        return m_values;
6395
620k
    }
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::values() &
6396
    /// Access the scanned values
6397
    const tuple_type& values() const&
6398
    {
6399
        return m_values;
6400
    }
6401
    /// Access the scanned values
6402
    tuple_type&& values() &&
6403
    {
6404
        return SCN_MOVE(m_values);
6405
    }
6406
    /// Access the scanned values
6407
    const tuple_type&& values() const&&
6408
    {
6409
        return SCN_MOVE(m_values);
6410
    }
6411
6412
    /// Access the single scanned value
6413
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6414
    decltype(auto) value() &
6415
519k
    {
6416
519k
        return std::get<0>(m_values);
6417
519k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
44.5k
    {
6416
44.5k
        return std::get<0>(m_values);
6417
44.5k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
20.3k
    {
6416
20.3k
        return std::get<0>(m_values);
6417
20.3k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIwNS3_11char_traitsIwEENS3_9allocatorIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
303k
    {
6416
303k
        return std::get<0>(m_values);
6417
303k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
151k
    {
6416
151k
        return std::get<0>(m_values);
6417
151k
    }
Unexecuted instantiation: _ZNR3scn2v46detail25scan_result_value_storageIJdEE5valueILm1ETnPNSt3__19enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
6418
    /// Access the single scanned value
6419
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6420
    decltype(auto) value() const&
6421
    {
6422
        return std::get<0>(m_values);
6423
    }
6424
    /// Access the single scanned value
6425
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6426
    decltype(auto) value() &&
6427
    {
6428
        return SCN_MOVE(std::get<0>(m_values));
6429
    }
6430
    /// Access the single scanned value
6431
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6432
    decltype(auto) value() const&&
6433
    {
6434
        return SCN_MOVE(std::get<0>(m_values));
6435
    }
6436
6437
private:
6438
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
6439
};
6440
6441
struct scan_result_convert_tag {};
6442
6443
template <typename Range>
6444
struct scan_result_range_storage {
6445
    static_assert(is_specialization_of_v<Range, ranges::subrange>,
6446
                  "scan_result<Range> accepts only subranges as Ranges");
6447
6448
public:
6449
    using range_type = Range;
6450
    using iterator = ranges::iterator_t<Range>;
6451
    using sentinel = ranges::sentinel_t<Range>;
6452
6453
2.66M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage()
Line
Count
Source
6453
218k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage()
Line
Count
Source
6453
129k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage()
Line
Count
Source
6453
1.54M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage()
Line
Count
Source
6453
772k
    constexpr scan_result_range_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
6454
6455
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
6456
    {
6457
    }
6458
6459
    template <typename R>
6460
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
6461
        : m_range(SCN_MOVE(r))
6462
    {
6463
    }
6464
6465
    /// Access the ununsed source range
6466
    range_type range() const
6467
    {
6468
        return m_range;
6469
    }
6470
6471
    /// The beginning of the unused source range
6472
    auto begin() const
6473
2.56M
    {
6474
2.56M
        return ranges::begin(m_range);
6475
2.56M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
6473
195k
    {
6474
195k
        return ranges::begin(m_range);
6475
195k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
6473
117k
    {
6474
117k
        return ranges::begin(m_range);
6475
117k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
6473
1.49M
    {
6474
1.49M
        return ranges::begin(m_range);
6475
1.49M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
6473
749k
    {
6474
749k
        return ranges::begin(m_range);
6475
749k
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::begin() const
6476
    /// The end of the unused source range
6477
    auto end() const
6478
0
    {
6479
0
        return ranges::end(m_range);
6480
0
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
6481
6482
    template <typename Other>
6483
    void set_range(Other&& r)
6484
2.56M
    {
6485
2.56M
        m_range = std::forward<Other>(r);
6486
2.56M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
6484
195k
    {
6485
195k
        m_range = std::forward<Other>(r);
6486
195k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
6484
117k
    {
6485
117k
        m_range = std::forward<Other>(r);
6486
117k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
6484
1.49M
    {
6485
1.49M
        m_range = std::forward<Other>(r);
6486
1.49M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
6484
749k
    {
6485
749k
        m_range = std::forward<Other>(r);
6486
749k
    }
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
6487
6488
protected:
6489
    template <typename Other>
6490
    void assign_range(Other&& r)
6491
    {
6492
        m_range = r.m_range;
6493
    }
6494
6495
private:
6496
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
6497
};
6498
6499
struct scan_result_file_storage {
6500
public:
6501
    using range_type = std::FILE*;
6502
6503
    constexpr scan_result_file_storage() = default;
6504
6505
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
6506
6507
    /// File used for scanning
6508
    std::FILE* file() const
6509
0
    {
6510
0
        return m_file;
6511
0
    }
6512
6513
    void set_range(std::FILE* f)
6514
0
    {
6515
0
        m_file = f;
6516
0
    }
6517
6518
protected:
6519
    void assign_range(const scan_result_file_storage& f)
6520
0
    {
6521
0
        m_file = f.m_file;
6522
0
    }
6523
6524
private:
6525
    std::FILE* m_file{nullptr};
6526
};
6527
6528
struct scan_result_dangling {
6529
    using range_type = ranges::dangling;
6530
6531
    constexpr scan_result_dangling() = default;
6532
6533
    template <typename... Args>
6534
    explicit constexpr scan_result_dangling(Args&&...)
6535
    {
6536
    }
6537
6538
    range_type range() const
6539
0
    {
6540
0
        return {};
6541
0
    }
6542
6543
    ranges::dangling begin() const
6544
0
    {
6545
0
        return {};
6546
0
    }
6547
    ranges::dangling end() const
6548
0
    {
6549
0
        return {};
6550
0
    }
6551
6552
    template <typename... Args>
6553
    void set_range(Args&&...)
6554
    {
6555
    }
6556
6557
protected:
6558
    template <typename... Args>
6559
    void assign_range(Args&&...)
6560
    {
6561
    }
6562
};
6563
6564
template <typename Range>
6565
constexpr auto get_scan_result_base()
6566
0
{
6567
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
6568
0
        return type_identity<scan_result_dangling>{};
6569
0
    }
6570
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
6571
0
        return type_identity<scan_result_file_storage>{};
6572
0
    }
6573
0
    else {
6574
0
        return type_identity<scan_result_range_storage<Range>>{};
6575
0
    }
6576
0
}
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
6577
6578
#if !SCN_DOXYGEN
6579
template <typename Range>
6580
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
6581
#else
6582
template <typename Range>
6583
using scan_result_base = scan_result_range_storage<Range>;
6584
#endif
6585
}  // namespace detail
6586
6587
/**
6588
 * \defgroup result Result types
6589
 *
6590
 * \brief Result and error types
6591
 *
6592
 * Instead of using exceptions, `scn::scan` and others return an object of
6593
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
6594
 */
6595
6596
/**
6597
 * Type returned by `scan`, contains the unused input as a subrange, and the
6598
 * scanned values in a tuple.
6599
 */
6600
template <typename Range, typename... Args>
6601
class scan_result : public detail::scan_result_base<Range>,
6602
                    public detail::scan_result_value_storage<Args...> {
6603
    using range_base = detail::scan_result_base<Range>;
6604
    using value_base = detail::scan_result_value_storage<Args...>;
6605
6606
public:
6607
    using range_type = typename range_base::range_type;
6608
    using tuple_type = typename value_base::tuple_type;
6609
6610
2.66M
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6610
109k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result()
Line
Count
Source
6610
109k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6610
129k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6610
772k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result()
Line
Count
Source
6610
772k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6610
772k
    constexpr scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
6611
6612
    constexpr scan_result(const scan_result&) = default;
6613
0
    constexpr scan_result(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6614
    constexpr scan_result& operator=(const scan_result&) = default;
6615
0
    constexpr scan_result& operator=(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6616
6617
1.78M
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6617
109k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6617
129k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6617
772k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6617
772k
    ~scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
6618
6619
    scan_result(range_type r, tuple_type&& values)
6620
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
6621
    {
6622
    }
6623
6624
    template <typename OtherR,
6625
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
6626
                  nullptr>
6627
    scan_result(OtherR&& r, tuple_type&& values)
6628
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
6629
          value_base(SCN_MOVE(values))
6630
    {
6631
    }
6632
6633
    template <typename OtherR,
6634
              std::enable_if_t<
6635
                  std::is_constructible_v<range_type, OtherR> &&
6636
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6637
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
6638
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6639
          value_base(o.values())
6640
    {
6641
    }
6642
    template <typename OtherR,
6643
              std::enable_if_t<
6644
                  std::is_constructible_v<range_type, OtherR> &&
6645
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6646
    explicit scan_result(const scan_result<OtherR, Args...>& o)
6647
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6648
          value_base(o.values())
6649
    {
6650
    }
6651
6652
    template <typename OtherR,
6653
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6654
                               std::is_convertible_v<OtherR&&, range_type>>* =
6655
                  nullptr>
6656
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
6657
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6658
          value_base(SCN_MOVE(o.values()))
6659
    {
6660
    }
6661
    template <typename OtherR,
6662
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6663
                               !std::is_convertible_v<OtherR&&, range_type>>* =
6664
                  nullptr>
6665
    explicit scan_result(scan_result<OtherR, Args...>&& o)
6666
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6667
          value_base(SCN_MOVE(o.values()))
6668
    {
6669
    }
6670
6671
    template <typename OtherR,
6672
              typename =
6673
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6674
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
6675
    {
6676
        this->assign_range(o);
6677
        this->values() = o.values();
6678
        return *this;
6679
    }
6680
6681
    template <typename OtherR,
6682
              typename =
6683
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6684
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
6685
    {
6686
        this->assign_range(o);
6687
        this->values() = SCN_MOVE(o.values());
6688
        return *this;
6689
    }
6690
};
6691
6692
template <typename R, typename... Args>
6693
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
6694
template <typename R, typename Ctx, typename... Args>
6695
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
6696
    -> scan_result<R, Args...>;
6697
6698
namespace detail {
6699
template <typename SourceRange>
6700
auto make_vscan_result_range_end(SourceRange& source)
6701
2.56M
{
6702
2.56M
    return ranges::end(source);
6703
2.56M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
6701
195k
{
6702
195k
    return ranges::end(source);
6703
195k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
6701
117k
{
6702
117k
    return ranges::end(source);
6703
117k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
6701
1.49M
{
6702
1.49M
    return ranges::end(source);
6703
1.49M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
6701
749k
{
6702
749k
    return ranges::end(source);
6703
749k
}
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
6704
template <typename CharT, size_t N>
6705
auto make_vscan_result_range_end(CharT (&source)[N])
6706
    -> ranges::sentinel_t<CharT (&)[N]>
6707
{
6708
    return source + N - 1;
6709
}
6710
6711
template <typename SourceRange>
6712
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
6713
    -> borrowed_tail_subrange_t<SourceRange>
6714
2.56M
{
6715
    if constexpr (ranges::random_access_iterator<
6716
2.56M
                      ranges::iterator_t<SourceRange>>) {
6717
2.56M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
0
    else {
6720
0
        auto it = ranges::begin(source);
6721
0
        while (n > 0) {
6722
0
            --n;
6723
0
            ++it;
6724
0
        }
6725
0
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
0
    }
6727
2.56M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6714
195k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
195k
                      ranges::iterator_t<SourceRange>>) {
6717
195k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
195k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6714
117k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
117k
                      ranges::iterator_t<SourceRange>>) {
6717
117k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
117k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6714
1.49M
{
6715
    if constexpr (ranges::random_access_iterator<
6716
1.49M
                      ranges::iterator_t<SourceRange>>) {
6717
1.49M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
1.49M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6714
749k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
749k
                      ranges::iterator_t<SourceRange>>) {
6717
749k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
749k
}
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISC_EEE4typeEOSC_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
6728
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
6729
0
{
6730
0
    return source;
6731
0
}
6732
}  // namespace detail
6733
6734
/////////////////////////////////////////////////////////////////
6735
// Format string parsing
6736
/////////////////////////////////////////////////////////////////
6737
6738
namespace detail {
6739
/// Parse context with extra data used only for compile-time checks
6740
template <typename CharT>
6741
class compile_parse_context : public basic_scan_parse_context<CharT> {
6742
    using base = basic_scan_parse_context<CharT>;
6743
6744
public:
6745
    template <typename Source>
6746
    explicit constexpr compile_parse_context(
6747
        source_tag_type<Source>,
6748
        std::basic_string_view<CharT> format_str,
6749
        int num_args,
6750
        const arg_type* types,
6751
        int next_arg_id = 0)
6752
        : base(source_tag<Source>, format_str, next_arg_id),
6753
          m_num_args(num_args),
6754
          m_types(types)
6755
    {
6756
    }
6757
6758
    SCN_NODISCARD constexpr int get_num_args() const
6759
0
    {
6760
0
        return m_num_args;
6761
0
    }
Unexecuted instantiation: scn::v4::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v4::detail::compile_parse_context<wchar_t>::get_num_args() const
6762
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
6763
    {
6764
        return m_types[id];
6765
    }
6766
6767
    SCN_GCC_PUSH
6768
    SCN_GCC_IGNORE("-Wsign-conversion")
6769
6770
    constexpr std::size_t next_arg_id()
6771
    {
6772
        auto id = base::next_arg_id();
6773
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6774
            this->on_error("Argument not found");
6775
        }
6776
        return id;
6777
    }
6778
6779
    constexpr void check_arg_id(std::size_t id)
6780
    {
6781
        base::check_arg_id(id);
6782
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6783
            this->on_error("Argument not found");
6784
        }
6785
    }
6786
    using base::check_arg_id;
6787
6788
private:
6789
    int m_num_args;
6790
    const arg_type* m_types;
6791
6792
    SCN_GCC_POP  // -Wsign-conversion
6793
};
6794
6795
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6796
0
{
6797
0
#ifdef __cpp_lib_is_constant_evaluated
6798
0
    SCN_UNUSED(default_value);
6799
0
    return std::is_constant_evaluated();
6800
0
#else
6801
0
    return default_value;
6802
0
#endif
6803
0
}
6804
}  // namespace detail
6805
6806
template <typename CharT>
6807
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6808
1.10M
{
6809
1.10M
    if (detail::is_constant_evaluated() &&
6810
1.10M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
1.10M
}
scn::v4::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6808
153k
{
6809
153k
    if (detail::is_constant_evaluated() &&
6810
153k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
153k
}
scn::v4::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6808
952k
{
6809
952k
    if (detail::is_constant_evaluated() &&
6810
952k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
952k
}
6820
6821
namespace detail {
6822
enum class align_type : unsigned char {
6823
    none = 0,
6824
    left = 1,   // '<'
6825
    right = 2,  // '>'
6826
    center = 3  // '^'
6827
};
6828
6829
enum class presentation_type {
6830
    none,
6831
    int_binary,            // 'b', 'B'
6832
    int_decimal,           // 'd'
6833
    int_generic,           // 'i'
6834
    int_unsigned_decimal,  // 'u'
6835
    int_octal,             // 'o'
6836
    int_hex,               // 'x', 'X'
6837
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6838
    float_hex,             // 'a', 'A'
6839
    float_scientific,      // 'e', 'E'
6840
    float_fixed,           // 'f', 'F'
6841
    float_general,         // 'g', 'G'
6842
    string,                // 's'
6843
    string_set,            // '[...]'
6844
    regex,                 // '/.../.'
6845
    regex_escaped,         // '/..\/../.'
6846
    character,             // 'c'
6847
    escaped_character,     // '?'
6848
    pointer,               // 'p'
6849
};
6850
6851
enum class regex_flags {
6852
    none = 0,
6853
    multiline = 1,   // /m
6854
    singleline = 2,  // /s
6855
    nocase = 4,      // /i
6856
    nocapture = 8,   // /n
6857
    // TODO?
6858
    // would probably need to go hand-in-hand with locale,
6859
    // where it could even be the default/only option -> no flag?
6860
    // why else would you even use locale with a regex?
6861
    // collate = 16,
6862
};
6863
6864
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6865
0
{
6866
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6867
0
                                    static_cast<unsigned>(b));
6868
0
}
6869
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6870
0
{
6871
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6872
0
                                    static_cast<unsigned>(b));
6873
0
}
6874
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6875
0
{
6876
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6877
0
                                    static_cast<unsigned>(b));
6878
0
}
6879
6880
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6881
0
{
6882
0
    return a = a & b;
6883
0
}
6884
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6885
0
{
6886
0
    return a = a | b;
6887
0
}
6888
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6889
0
{
6890
0
    return a = a ^ b;
6891
0
}
6892
6893
class fill_type {
6894
public:
6895
    constexpr void operator=(char c)
6896
0
    {
6897
0
        m_data[0] = c;
6898
0
        m_size = 1;
6899
0
    }
6900
6901
    template <typename CharT>
6902
    constexpr void operator=(std::basic_string_view<CharT> s)
6903
0
    {
6904
0
        SCN_EXPECT(!s.empty());
6905
0
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6906
0
        if constexpr (sizeof(CharT) == 1) {
6907
0
            for (size_t i = 0; i < s.size(); ++i) {
6908
0
                SCN_GCC_PUSH
6909
0
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6910
0
                m_data[i] = s[i];
6911
0
                SCN_GCC_POP
6912
0
            }
6913
0
            m_size = static_cast<unsigned char>(s.size());
6914
        }
6915
        else if constexpr (sizeof(CharT) == 2) {
6916
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6917
            m_data[1] =
6918
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6919
            if (s.size() == 1) {
6920
                return;
6921
            }
6922
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6923
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6924
        }
6925
0
        else {
6926
0
            const auto front = static_cast<unsigned>(s.front());
6927
0
            m_data[0] = static_cast<char>(front);
6928
0
            m_data[1] = static_cast<char>(front >> 8);
6929
0
            m_data[2] = static_cast<char>(front >> 16);
6930
0
            m_data[3] = static_cast<char>(front >> 24);
6931
0
        }
6932
0
    }
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
6933
6934
    constexpr size_t size() const
6935
0
    {
6936
0
        return m_size;
6937
0
    }
6938
6939
    template <typename CharT>
6940
    CharT get_code_unit() const
6941
0
    {
6942
0
        SCN_EXPECT(m_size <= sizeof(CharT));
6943
0
        CharT r{};
6944
0
        std::memcpy(&r, m_data, m_size);
6945
0
        return r;
6946
0
    }
Unexecuted instantiation: char scn::v4::detail::fill_type::get_code_unit<char>() const
Unexecuted instantiation: wchar_t scn::v4::detail::fill_type::get_code_unit<wchar_t>() const
6947
6948
    template <typename CharT>
6949
    std::basic_string_view<CharT> get_code_units() const
6950
0
    {
6951
0
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6952
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::fill_type::get_code_units<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::fill_type::get_code_units<wchar_t>() const
6953
6954
private:
6955
    static constexpr size_t max_size = 4;
6956
    char m_data[max_size] = {' '};
6957
    unsigned char m_size{1};
6958
};
6959
6960
struct format_specs {
6961
    int width{0}, precision{0};
6962
    fill_type fill{};
6963
    presentation_type type{presentation_type::none};
6964
    std::array<uint8_t, 128 / 8> charset_literals{0};
6965
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6966
    const void* charset_string_data{nullptr};
6967
    size_t charset_string_size{0};
6968
    regex_flags regexp_flags{regex_flags::none};
6969
    unsigned char arbitrary_base{0};
6970
    align_type align{align_type::none};
6971
    bool localized{false};
6972
6973
    constexpr format_specs() = default;
6974
6975
    SCN_NODISCARD constexpr int get_base() const
6976
0
    {
6977
0
        SCN_GCC_COMPAT_PUSH
6978
0
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6979
0
        switch (type) {
6980
0
            case presentation_type::none:
6981
0
                return 10;
6982
0
            case presentation_type::int_generic:
6983
0
                return 0;
6984
0
            case presentation_type::int_arbitrary_base:
6985
0
                return arbitrary_base;
6986
6987
0
            case presentation_type::int_binary:
6988
0
                return 2;
6989
0
            case presentation_type::int_octal:
6990
0
                return 8;
6991
0
            case presentation_type::int_decimal:
6992
0
            case presentation_type::int_unsigned_decimal:
6993
0
                return 10;
6994
0
            case presentation_type::int_hex:
6995
0
                return 16;
6996
6997
0
            default:
6998
0
                SCN_EXPECT(false);
6999
0
                SCN_UNREACHABLE;
7000
0
        }
7001
0
        SCN_GCC_COMPAT_POP
7002
0
    }
7003
7004
    template <typename CharT>
7005
    std::basic_string_view<CharT> charset_string() const
7006
0
    {
7007
0
        return {reinterpret_cast<const CharT*>(charset_string_data),
7008
0
                charset_string_size};
7009
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::format_specs::charset_string<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::format_specs::charset_string<wchar_t>() const
7010
};
7011
7012
struct specs_setter {
7013
public:
7014
1.10M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
7015
7016
    constexpr void on_align(align_type align)
7017
0
    {
7018
0
        m_specs.align = align;
7019
0
    }
7020
    template <typename CharT>
7021
    constexpr void on_fill(std::basic_string_view<CharT> fill)
7022
0
    {
7023
0
        m_specs.fill = fill;
7024
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
7025
    template <bool Dependent = true>
7026
    constexpr void on_localized()
7027
0
    {
7028
0
        if constexpr (!SCN_DISABLE_LOCALE) {
7029
0
            m_specs.localized = true;
7030
        }
7031
        else {
7032
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
7033
        }
7034
0
    }
7035
7036
    constexpr void on_width(int width)
7037
31.7k
    {
7038
31.7k
        if (m_specs.precision != 0 && width > m_specs.precision) {
7039
            // clang-format off
7040
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7041
            // clang-format on
7042
0
        }
7043
7044
31.7k
        m_specs.width = width;
7045
31.7k
    }
7046
    constexpr void on_precision(int prec)
7047
0
    {
7048
0
        if (m_specs.width > prec) {
7049
            // clang-format off
7050
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7051
            // clang-format on
7052
0
        }
7053
7054
0
        m_specs.precision = prec;
7055
0
    }
7056
7057
    constexpr void on_type(presentation_type type)
7058
1.07M
    {
7059
1.07M
        m_specs.type = type;
7060
1.07M
    }
7061
7062
    constexpr void on_charset_single(char32_t cp)
7063
0
    {
7064
0
        const auto cp_value = static_cast<unsigned>(cp);
7065
0
        if (SCN_LIKELY(cp_value <= 127)) {
7066
0
            m_specs.charset_literals[cp_value / 8] |=
7067
0
                static_cast<unsigned char>(1ul << (cp_value % 8));
7068
0
        }
7069
0
        else {
7070
0
            m_specs.charset_has_nonascii = true;
7071
0
        }
7072
0
    }
7073
7074
    constexpr void on_charset_range(char32_t begin, char32_t end)
7075
36.6k
    {
7076
36.6k
        const auto begin_value = static_cast<unsigned>(begin);
7077
36.6k
        const auto end_value = static_cast<unsigned>(end);
7078
36.6k
        SCN_EXPECT(begin_value < end_value);
7079
7080
36.6k
        if (SCN_LIKELY(end_value <= 127)) {
7081
            // No need to bit-twiddle with a mask, because with the
7082
            // SCN_ASSUME, -O3 will optimize this to a single operation
7083
36.6k
            SCN_ASSUME(begin_value < end_value);
7084
988k
            for (auto v = begin_value; v != end_value; ++v) {
7085
952k
                m_specs.charset_literals[v / 8] |=
7086
952k
                    static_cast<unsigned char>(1ul << (v % 8));
7087
952k
            }
7088
36.6k
        }
7089
0
        else {
7090
0
            m_specs.charset_has_nonascii = true;
7091
0
        }
7092
36.6k
    }
7093
7094
    constexpr void on_charset_inverted()
7095
0
    {
7096
0
        m_specs.charset_is_inverted = true;
7097
0
    }
7098
7099
    template <typename CharT>
7100
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
7101
18.3k
    {
7102
18.3k
        m_specs.charset_string_data = fmt.data();
7103
18.3k
        m_specs.charset_string_size = fmt.size();
7104
18.3k
        on_type(presentation_type::string_set);
7105
18.3k
    }
void scn::v4::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7101
7.38k
    {
7102
7.38k
        m_specs.charset_string_data = fmt.data();
7103
7.38k
        m_specs.charset_string_size = fmt.size();
7104
7.38k
        on_type(presentation_type::string_set);
7105
7.38k
    }
void scn::v4::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7101
10.9k
    {
7102
10.9k
        m_specs.charset_string_data = fmt.data();
7103
10.9k
        m_specs.charset_string_size = fmt.size();
7104
10.9k
        on_type(presentation_type::string_set);
7105
10.9k
    }
7106
7107
    template <typename CharT>
7108
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
7109
0
    {
7110
0
        m_specs.charset_string_data = pattern.data();
7111
0
        m_specs.charset_string_size = pattern.size();
7112
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
7113
    constexpr void on_regex_flags(regex_flags flags)
7114
0
    {
7115
0
        m_specs.regexp_flags = flags;
7116
0
    }
7117
7118
    // Intentionally not constexpr
7119
    void on_error(const char* msg)
7120
31.7k
    {
7121
31.7k
        SCN_UNLIKELY_ATTR
7122
31.7k
        m_error = unexpected_scan_error(scan_error::invalid_format_string, msg);
7123
31.7k
    }
7124
    void on_error(scan_error err)
7125
0
    {
7126
0
        SCN_UNLIKELY_ATTR
7127
0
        m_error = unexpected(err);
7128
0
    }
7129
7130
    constexpr scan_expected<void> get_error() const
7131
1.16M
    {
7132
1.16M
        return m_error;
7133
1.16M
    }
7134
7135
protected:
7136
    format_specs& m_specs;
7137
    scan_expected<void> m_error;
7138
};
7139
7140
template <typename CharT>
7141
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
7142
31.7k
{
7143
31.7k
    SCN_EXPECT(begin != end);
7144
31.7k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
31.7k
    unsigned long long value = 0;
7147
63.4k
    do {
7148
63.4k
        value *= 10;
7149
63.4k
        value += static_cast<unsigned long long>(*begin - '0');
7150
63.4k
        if (value >
7151
63.4k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
63.4k
        ++begin;
7155
63.4k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
31.7k
    return static_cast<int>(value);
7157
31.7k
}
int scn::v4::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
7142
10.5k
{
7143
10.5k
    SCN_EXPECT(begin != end);
7144
10.5k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
10.5k
    unsigned long long value = 0;
7147
21.1k
    do {
7148
21.1k
        value *= 10;
7149
21.1k
        value += static_cast<unsigned long long>(*begin - '0');
7150
21.1k
        if (value >
7151
21.1k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
21.1k
        ++begin;
7155
21.1k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
10.5k
    return static_cast<int>(value);
7157
10.5k
}
int scn::v4::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
7142
21.1k
{
7143
21.1k
    SCN_EXPECT(begin != end);
7144
21.1k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
21.1k
    unsigned long long value = 0;
7147
42.2k
    do {
7148
42.2k
        value *= 10;
7149
42.2k
        value += static_cast<unsigned long long>(*begin - '0');
7150
42.2k
        if (value >
7151
42.2k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
42.2k
        ++begin;
7155
42.2k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
21.1k
    return static_cast<int>(value);
7157
21.1k
}
7158
7159
template <typename CharT, typename IDHandler>
7160
constexpr const CharT* do_parse_arg_id(const CharT* begin,
7161
                                       const CharT* end,
7162
                                       IDHandler&& handler)
7163
0
{
7164
0
    SCN_EXPECT(begin != end);
7165
7166
0
    CharT c = *begin;
7167
0
    if (c < CharT{'0'} || c > CharT{'9'}) {
7168
0
        handler.on_error("Invalid argument ID");
7169
0
        return begin;
7170
0
    }
7171
7172
0
    int idx = 0;
7173
0
    if (c != CharT{'0'}) {
7174
0
        idx = parse_simple_int(begin, end);
7175
0
    }
7176
0
    else {
7177
0
        ++begin;
7178
0
    }
7179
7180
0
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
7181
0
        handler.on_error("Invalid argument ID");
7182
0
        return begin;
7183
0
    }
7184
0
    handler(idx);
7185
7186
0
    return begin;
7187
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
7188
7189
template <typename CharT, typename IDHandler>
7190
constexpr const CharT* parse_arg_id(const CharT* begin,
7191
                                    const CharT* end,
7192
                                    IDHandler&& handler)
7193
1.10M
{
7194
1.10M
    SCN_EXPECT(begin != end);
7195
1.10M
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
1.10M
    handler();
7200
1.10M
    return begin;
7201
1.10M
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
7193
96.8k
{
7194
96.8k
    SCN_EXPECT(begin != end);
7195
96.8k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
96.8k
    handler();
7200
96.8k
    return begin;
7201
96.8k
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
7193
56.2k
{
7194
56.2k
    SCN_EXPECT(begin != end);
7195
56.2k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
56.2k
    handler();
7200
56.2k
    return begin;
7201
56.2k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
7193
634k
{
7194
634k
    SCN_EXPECT(begin != end);
7195
634k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
634k
    handler();
7200
634k
    return begin;
7201
634k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
7193
317k
{
7194
317k
    SCN_EXPECT(begin != end);
7195
317k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
317k
    handler();
7200
317k
    return begin;
7201
317k
}
7202
7203
template <typename CharT>
7204
constexpr presentation_type parse_presentation_type(CharT type)
7205
1.07M
{
7206
1.07M
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
1.03M
        case 's':
7237
1.03M
            return presentation_type::string;
7238
15.8k
        case 'c':
7239
15.8k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
15.8k
        default:
7251
15.8k
            return presentation_type::none;
7252
1.07M
    }
7253
1.07M
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<char>(char)
Line
Count
Source
7205
140k
{
7206
140k
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
129k
        case 's':
7237
129k
            return presentation_type::string;
7238
5.28k
        case 'c':
7239
5.28k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
5.28k
        default:
7251
5.28k
            return presentation_type::none;
7252
140k
    }
7253
140k
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
7205
930k
{
7206
930k
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
909k
        case 's':
7237
909k
            return presentation_type::string;
7238
10.5k
        case 'c':
7239
10.5k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
10.5k
        default:
7251
10.5k
            return presentation_type::none;
7252
930k
    }
7253
930k
}
7254
7255
template <typename CharT>
7256
constexpr bool is_ascii_letter(CharT ch)
7257
1.05M
{
7258
1.05M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
1.05M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
1.05M
}
bool scn::v4::detail::is_ascii_letter<char>(char)
Line
Count
Source
7257
135k
{
7258
135k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
135k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
135k
}
bool scn::v4::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
7257
920k
{
7258
920k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
920k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
920k
}
7261
7262
template <typename CharT>
7263
constexpr int code_point_length(const CharT* begin, const CharT* end)
7264
65.8k
{
7265
65.8k
    SCN_EXPECT(begin != end);
7266
65.8k
    if constexpr (sizeof(CharT) != 1) {
7267
42.6k
        return 1;
7268
    }
7269
23.2k
    else {
7270
23.2k
        const auto lengths =
7271
23.2k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
23.2k
            "\3\4";
7273
23.2k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
23.2k
        return len;
7275
23.2k
    }
7276
65.8k
}
int scn::v4::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
7264
23.2k
{
7265
23.2k
    SCN_EXPECT(begin != end);
7266
    if constexpr (sizeof(CharT) != 1) {
7267
        return 1;
7268
    }
7269
23.2k
    else {
7270
23.2k
        const auto lengths =
7271
23.2k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
23.2k
            "\3\4";
7273
23.2k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
23.2k
        return len;
7275
23.2k
    }
7276
23.2k
}
int scn::v4::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
7264
42.6k
{
7265
42.6k
    SCN_EXPECT(begin != end);
7266
42.6k
    if constexpr (sizeof(CharT) != 1) {
7267
42.6k
        return 1;
7268
    }
7269
    else {
7270
        const auto lengths =
7271
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
            "\3\4";
7273
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
        return len;
7275
    }
7276
42.6k
}
7277
7278
template <typename CharT, typename Handler>
7279
constexpr const CharT* parse_align(const CharT* begin,
7280
                                   const CharT* end,
7281
                                   Handler&& handler)
7282
65.8k
{
7283
65.8k
    SCN_EXPECT(begin != end);
7284
7285
131k
    auto check_align = [](wchar_t ch) {
7286
131k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
131k
            default:
7294
131k
                return align_type::none;
7295
131k
        }
7296
131k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
30.9k
    auto check_align = [](wchar_t ch) {
7286
30.9k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
30.9k
            default:
7294
30.9k
                return align_type::none;
7295
30.9k
        }
7296
30.9k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
15.4k
    auto check_align = [](wchar_t ch) {
7286
15.4k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
15.4k
            default:
7294
15.4k
                return align_type::none;
7295
15.4k
        }
7296
15.4k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
56.8k
    auto check_align = [](wchar_t ch) {
7286
56.8k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
56.8k
            default:
7294
56.8k
                return align_type::none;
7295
56.8k
        }
7296
56.8k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
28.4k
    auto check_align = [](wchar_t ch) {
7286
28.4k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
28.4k
            default:
7294
28.4k
                return align_type::none;
7295
28.4k
        }
7296
28.4k
    };
7297
7298
65.8k
    auto potential_fill_len = code_point_length(begin, end);
7299
65.8k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
65.8k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
65.8k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
65.8k
    auto potential_fill = std::basic_string_view<CharT>{
7308
65.8k
        begin, static_cast<size_t>(potential_fill_len)};
7309
65.8k
    const auto begin_before_fill = begin;
7310
65.8k
    begin += potential_fill_len;
7311
7312
65.8k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
65.8k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
65.8k
    const auto begin_after_fill = begin;
7318
65.8k
    ++begin;
7319
7320
65.8k
    if (potential_fill_len == 1) {
7321
65.8k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
65.8k
        if (potential_fill[0] == '[') {
7326
18.3k
            return begin_before_fill;
7327
18.3k
        }
7328
65.8k
    }
7329
7330
47.5k
    if (potential_align_after_fill == align_type::none) {
7331
47.5k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
47.5k
        return begin_before_fill;
7336
47.5k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
47.5k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7282
15.4k
{
7283
15.4k
    SCN_EXPECT(begin != end);
7284
7285
15.4k
    auto check_align = [](wchar_t ch) {
7286
15.4k
        switch (ch) {
7287
15.4k
            case L'<':
7288
15.4k
                return align_type::left;
7289
15.4k
            case L'>':
7290
15.4k
                return align_type::right;
7291
15.4k
            case L'^':
7292
15.4k
                return align_type::center;
7293
15.4k
            default:
7294
15.4k
                return align_type::none;
7295
15.4k
        }
7296
15.4k
    };
7297
7298
15.4k
    auto potential_fill_len = code_point_length(begin, end);
7299
15.4k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
15.4k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
15.4k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
15.4k
    auto potential_fill = std::basic_string_view<CharT>{
7308
15.4k
        begin, static_cast<size_t>(potential_fill_len)};
7309
15.4k
    const auto begin_before_fill = begin;
7310
15.4k
    begin += potential_fill_len;
7311
7312
15.4k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
15.4k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
15.4k
    const auto begin_after_fill = begin;
7318
15.4k
    ++begin;
7319
7320
15.4k
    if (potential_fill_len == 1) {
7321
15.4k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
15.4k
        if (potential_fill[0] == '[') {
7326
4.92k
            return begin_before_fill;
7327
4.92k
        }
7328
15.4k
    }
7329
7330
10.5k
    if (potential_align_after_fill == align_type::none) {
7331
10.5k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
10.5k
        return begin_before_fill;
7336
10.5k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
10.5k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7282
7.74k
{
7283
7.74k
    SCN_EXPECT(begin != end);
7284
7285
7.74k
    auto check_align = [](wchar_t ch) {
7286
7.74k
        switch (ch) {
7287
7.74k
            case L'<':
7288
7.74k
                return align_type::left;
7289
7.74k
            case L'>':
7290
7.74k
                return align_type::right;
7291
7.74k
            case L'^':
7292
7.74k
                return align_type::center;
7293
7.74k
            default:
7294
7.74k
                return align_type::none;
7295
7.74k
        }
7296
7.74k
    };
7297
7298
7.74k
    auto potential_fill_len = code_point_length(begin, end);
7299
7.74k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
7.74k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
7.74k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
7.74k
    auto potential_fill = std::basic_string_view<CharT>{
7308
7.74k
        begin, static_cast<size_t>(potential_fill_len)};
7309
7.74k
    const auto begin_before_fill = begin;
7310
7.74k
    begin += potential_fill_len;
7311
7312
7.74k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
7.74k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
7.74k
    const auto begin_after_fill = begin;
7318
7.74k
    ++begin;
7319
7320
7.74k
    if (potential_fill_len == 1) {
7321
7.74k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
7.74k
        if (potential_fill[0] == '[') {
7326
2.46k
            return begin_before_fill;
7327
2.46k
        }
7328
7.74k
    }
7329
7330
5.28k
    if (potential_align_after_fill == align_type::none) {
7331
5.28k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
5.28k
        return begin_before_fill;
7336
5.28k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
5.28k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7282
28.4k
{
7283
28.4k
    SCN_EXPECT(begin != end);
7284
7285
28.4k
    auto check_align = [](wchar_t ch) {
7286
28.4k
        switch (ch) {
7287
28.4k
            case L'<':
7288
28.4k
                return align_type::left;
7289
28.4k
            case L'>':
7290
28.4k
                return align_type::right;
7291
28.4k
            case L'^':
7292
28.4k
                return align_type::center;
7293
28.4k
            default:
7294
28.4k
                return align_type::none;
7295
28.4k
        }
7296
28.4k
    };
7297
7298
28.4k
    auto potential_fill_len = code_point_length(begin, end);
7299
28.4k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
28.4k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
28.4k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
28.4k
    auto potential_fill = std::basic_string_view<CharT>{
7308
28.4k
        begin, static_cast<size_t>(potential_fill_len)};
7309
28.4k
    const auto begin_before_fill = begin;
7310
28.4k
    begin += potential_fill_len;
7311
7312
28.4k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
28.4k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
28.4k
    const auto begin_after_fill = begin;
7318
28.4k
    ++begin;
7319
7320
28.4k
    if (potential_fill_len == 1) {
7321
28.4k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
28.4k
        if (potential_fill[0] == '[') {
7326
7.28k
            return begin_before_fill;
7327
7.28k
        }
7328
28.4k
    }
7329
7330
21.1k
    if (potential_align_after_fill == align_type::none) {
7331
21.1k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
21.1k
        return begin_before_fill;
7336
21.1k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
21.1k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7282
14.2k
{
7283
14.2k
    SCN_EXPECT(begin != end);
7284
7285
14.2k
    auto check_align = [](wchar_t ch) {
7286
14.2k
        switch (ch) {
7287
14.2k
            case L'<':
7288
14.2k
                return align_type::left;
7289
14.2k
            case L'>':
7290
14.2k
                return align_type::right;
7291
14.2k
            case L'^':
7292
14.2k
                return align_type::center;
7293
14.2k
            default:
7294
14.2k
                return align_type::none;
7295
14.2k
        }
7296
14.2k
    };
7297
7298
14.2k
    auto potential_fill_len = code_point_length(begin, end);
7299
14.2k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
14.2k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
14.2k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
14.2k
    auto potential_fill = std::basic_string_view<CharT>{
7308
14.2k
        begin, static_cast<size_t>(potential_fill_len)};
7309
14.2k
    const auto begin_before_fill = begin;
7310
14.2k
    begin += potential_fill_len;
7311
7312
14.2k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
14.2k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
14.2k
    const auto begin_after_fill = begin;
7318
14.2k
    ++begin;
7319
7320
14.2k
    if (potential_fill_len == 1) {
7321
14.2k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
14.2k
        if (potential_fill[0] == '[') {
7326
3.64k
            return begin_before_fill;
7327
3.64k
        }
7328
14.2k
    }
7329
7330
10.5k
    if (potential_align_after_fill == align_type::none) {
7331
10.5k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
10.5k
        return begin_before_fill;
7336
10.5k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
10.5k
}
7342
7343
template <typename CharT, typename Handler>
7344
constexpr const CharT* parse_width(const CharT* begin,
7345
                                   const CharT* end,
7346
                                   Handler&& handler)
7347
65.8k
{
7348
65.8k
    SCN_EXPECT(begin != end);
7349
7350
65.8k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
31.7k
        int width = parse_simple_int(begin, end);
7352
31.7k
        if (SCN_LIKELY(width != -1)) {
7353
31.7k
            handler.on_width(width);
7354
31.7k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
31.7k
    }
7360
65.8k
    return begin;
7361
65.8k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7347
15.4k
{
7348
15.4k
    SCN_EXPECT(begin != end);
7349
7350
15.4k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
7.04k
        int width = parse_simple_int(begin, end);
7352
7.04k
        if (SCN_LIKELY(width != -1)) {
7353
7.04k
            handler.on_width(width);
7354
7.04k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
7.04k
    }
7360
15.4k
    return begin;
7361
15.4k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7347
7.74k
{
7348
7.74k
    SCN_EXPECT(begin != end);
7349
7350
7.74k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
3.52k
        int width = parse_simple_int(begin, end);
7352
3.52k
        if (SCN_LIKELY(width != -1)) {
7353
3.52k
            handler.on_width(width);
7354
3.52k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
3.52k
    }
7360
7.74k
    return begin;
7361
7.74k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7347
28.4k
{
7348
28.4k
    SCN_EXPECT(begin != end);
7349
7350
28.4k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
14.0k
        int width = parse_simple_int(begin, end);
7352
14.0k
        if (SCN_LIKELY(width != -1)) {
7353
14.0k
            handler.on_width(width);
7354
14.0k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
14.0k
    }
7360
28.4k
    return begin;
7361
28.4k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7347
14.2k
{
7348
14.2k
    SCN_EXPECT(begin != end);
7349
7350
14.2k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
7.04k
        int width = parse_simple_int(begin, end);
7352
7.04k
        if (SCN_LIKELY(width != -1)) {
7353
7.04k
            handler.on_width(width);
7354
7.04k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
7.04k
    }
7360
14.2k
    return begin;
7361
14.2k
}
7362
7363
template <typename CharT, typename Handler>
7364
constexpr const CharT* parse_precision(const CharT* begin,
7365
                                       const CharT* end,
7366
                                       Handler&& handler)
7367
0
{
7368
0
    SCN_EXPECT(begin != end);
7369
7370
0
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7371
0
        int prec = parse_simple_int(begin, end);
7372
0
        if (SCN_LIKELY(prec != -1)) {
7373
0
            handler.on_precision(prec);
7374
0
        }
7375
0
        else {
7376
0
            handler.on_error("Invalid field precision");
7377
0
            return begin;
7378
0
        }
7379
0
    }
7380
0
    return begin;
7381
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7382
7383
template <typename CharT, typename SpecHandler>
7384
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
7385
                                                     const CharT* end,
7386
                                                     SpecHandler&& handler)
7387
73.2k
{
7388
73.2k
    SCN_EXPECT(begin != end);
7389
7390
73.2k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
73.2k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
73.2k
    const auto cp =
7397
73.2k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
73.2k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
73.2k
    begin += len;
7404
73.2k
    return cp;
7405
73.2k
}
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7387
19.6k
{
7388
19.6k
    SCN_EXPECT(begin != end);
7389
7390
19.6k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
19.6k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
19.6k
    const auto cp =
7397
19.6k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
19.6k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
19.6k
    begin += len;
7404
19.6k
    return cp;
7405
19.6k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7387
9.84k
{
7388
9.84k
    SCN_EXPECT(begin != end);
7389
7390
9.84k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
9.84k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
9.84k
    const auto cp =
7397
9.84k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
9.84k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
9.84k
    begin += len;
7404
9.84k
    return cp;
7405
9.84k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7387
29.1k
{
7388
29.1k
    SCN_EXPECT(begin != end);
7389
7390
29.1k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
29.1k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
29.1k
    const auto cp =
7397
29.1k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
29.1k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
29.1k
    begin += len;
7404
29.1k
    return cp;
7405
29.1k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7387
14.5k
{
7388
14.5k
    SCN_EXPECT(begin != end);
7389
7390
14.5k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
14.5k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
14.5k
    const auto cp =
7397
14.5k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
14.5k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
14.5k
    begin += len;
7404
14.5k
    return cp;
7405
14.5k
}
7406
7407
template <typename CharT, typename SpecHandler>
7408
constexpr void parse_presentation_set_literal(const CharT*& begin,
7409
                                              const CharT* end,
7410
                                              SpecHandler&& handler)
7411
36.6k
{
7412
36.6k
    SCN_EXPECT(begin != end);
7413
7414
36.6k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
36.6k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
36.6k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
36.6k
        *(begin + 1) != CharT{']'}) {
7421
36.6k
        ++begin;
7422
7423
36.6k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
36.6k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
36.6k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
36.6k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
36.6k
        return;
7437
36.6k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7411
9.84k
{
7412
9.84k
    SCN_EXPECT(begin != end);
7413
7414
9.84k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
9.84k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
9.84k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
9.84k
        *(begin + 1) != CharT{']'}) {
7421
9.84k
        ++begin;
7422
7423
9.84k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
9.84k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
9.84k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
9.84k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
9.84k
        return;
7437
9.84k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7411
4.92k
{
7412
4.92k
    SCN_EXPECT(begin != end);
7413
7414
4.92k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
4.92k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
4.92k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
4.92k
        *(begin + 1) != CharT{']'}) {
7421
4.92k
        ++begin;
7422
7423
4.92k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
4.92k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
4.92k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
4.92k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
4.92k
        return;
7437
4.92k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7411
14.5k
{
7412
14.5k
    SCN_EXPECT(begin != end);
7413
7414
14.5k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
14.5k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
14.5k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
14.5k
        *(begin + 1) != CharT{']'}) {
7421
14.5k
        ++begin;
7422
7423
14.5k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
14.5k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
14.5k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
14.5k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
14.5k
        return;
7437
14.5k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7411
7.28k
{
7412
7.28k
    SCN_EXPECT(begin != end);
7413
7414
7.28k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
7.28k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
7.28k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
7.28k
        *(begin + 1) != CharT{']'}) {
7421
7.28k
        ++begin;
7422
7423
7.28k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
7.28k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
7.28k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
7.28k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
7.28k
        return;
7437
7.28k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
7441
7442
template <typename CharT, typename SpecHandler>
7443
constexpr std::basic_string_view<CharT> parse_presentation_set(
7444
    const CharT*& begin,
7445
    const CharT* end,
7446
    SpecHandler&& handler)
7447
18.3k
{
7448
18.3k
    SCN_EXPECT(begin != end);
7449
18.3k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
18.3k
    auto start = begin;
7452
18.3k
    ++begin;
7453
7454
18.3k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
18.3k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
18.3k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
54.9k
    while (begin != end) {
7479
54.9k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
54.9k
        if (*begin == CharT{']'}) {
7484
18.3k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
18.3k
        }
7486
7487
36.6k
        parse_presentation_set_literal(begin, end, handler);
7488
36.6k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
18.3k
}
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7447
4.92k
{
7448
4.92k
    SCN_EXPECT(begin != end);
7449
4.92k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
4.92k
    auto start = begin;
7452
4.92k
    ++begin;
7453
7454
4.92k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
4.92k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
4.92k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
14.7k
    while (begin != end) {
7479
14.7k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
14.7k
        if (*begin == CharT{']'}) {
7484
4.92k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
4.92k
        }
7486
7487
9.84k
        parse_presentation_set_literal(begin, end, handler);
7488
9.84k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
4.92k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7447
2.46k
{
7448
2.46k
    SCN_EXPECT(begin != end);
7449
2.46k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
2.46k
    auto start = begin;
7452
2.46k
    ++begin;
7453
7454
2.46k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
2.46k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
2.46k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
7.38k
    while (begin != end) {
7479
7.38k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
7.38k
        if (*begin == CharT{']'}) {
7484
2.46k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
2.46k
        }
7486
7487
4.92k
        parse_presentation_set_literal(begin, end, handler);
7488
4.92k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
2.46k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7447
7.28k
{
7448
7.28k
    SCN_EXPECT(begin != end);
7449
7.28k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
7.28k
    auto start = begin;
7452
7.28k
    ++begin;
7453
7454
7.28k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
7.28k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
7.28k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
21.8k
    while (begin != end) {
7479
21.8k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
21.8k
        if (*begin == CharT{']'}) {
7484
7.28k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
7.28k
        }
7486
7487
14.5k
        parse_presentation_set_literal(begin, end, handler);
7488
14.5k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
7.28k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7447
3.64k
{
7448
3.64k
    SCN_EXPECT(begin != end);
7449
3.64k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
3.64k
    auto start = begin;
7452
3.64k
    ++begin;
7453
7454
3.64k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
3.64k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
3.64k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
10.9k
    while (begin != end) {
7479
10.9k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
10.9k
        if (*begin == CharT{']'}) {
7484
3.64k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
3.64k
        }
7486
7487
7.28k
        parse_presentation_set_literal(begin, end, handler);
7488
7.28k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
3.64k
}
7494
7495
template <typename CharT, typename SpecHandler>
7496
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
7497
                                                const CharT* end,
7498
                                                SpecHandler&& handler)
7499
0
{
7500
0
#if !SCN_DISABLE_REGEX
7501
0
    SCN_EXPECT(begin != end);
7502
0
    SCN_EXPECT(*begin == CharT{'/'});
7503
7504
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7505
0
                  std::is_same_v<CharT, wchar_t>) {
7506
0
        handler.on_error("Regex backend doesn't support wide strings as input");
7507
0
        return begin;
7508
0
    }
7509
7510
0
    auto start = begin;
7511
0
    ++begin;
7512
7513
0
    if (SCN_UNLIKELY(begin == end)) {
7514
0
        handler.on_error("Unexpected end of regex in format string");
7515
0
        return begin;
7516
0
    }
7517
7518
0
    handler.on_type(presentation_type::regex);
7519
0
    for (; begin != end; ++begin) {
7520
0
        if (*begin == CharT{'/'}) {
7521
0
            if (*(begin - 1) != CharT{'\\'}) {
7522
0
                break;
7523
0
            }
7524
0
            else {
7525
0
                handler.on_type(presentation_type::regex_escaped);
7526
0
            }
7527
0
        }
7528
0
    }
7529
0
    if (SCN_UNLIKELY(begin == end)) {
7530
0
        handler.on_error("Unexpected end of regex in format string");
7531
0
        return begin;
7532
0
    }
7533
7534
0
    auto regex_end = begin;
7535
0
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7536
0
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7537
0
        handler.on_error("Invalid (empty) regex in format string");
7538
0
        return begin;
7539
0
    }
7540
0
    handler.on_regex_pattern(regex_pattern);
7541
0
    ++begin;
7542
7543
0
    if (SCN_UNLIKELY(begin == end)) {
7544
0
        handler.on_error("Unexpected end of regex in format string");
7545
0
        return begin;
7546
0
    }
7547
7548
0
    regex_flags flags{regex_flags::none};
7549
0
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7550
0
        {{'m', regex_flags::multiline},
7551
0
         {'s', regex_flags::singleline},
7552
0
         {'i', regex_flags::nocase},
7553
0
         {'n', regex_flags::nocapture}}};
7554
0
    for (; begin != end; ++begin) {
7555
0
        if (*begin == CharT{'}'}) {
7556
0
            break;
7557
0
        }
7558
0
        bool found_flag = false;
7559
0
        for (auto flag : flag_map) {
7560
0
            if (static_cast<CharT>(flag.first) != *begin) {
7561
0
                continue;
7562
0
            }
7563
0
            if ((flags & flag.second) != regex_flags::none) {
7564
0
                handler.on_error("Flag set multiple times in regex");
7565
0
                return begin;
7566
0
            }
7567
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7568
            if (*begin == CharT{'s'}) {
7569
                // clang-format off
7570
                handler.on_error("/s flag for regex isn't supported by regex backend");
7571
                // clang-format on
7572
            }
7573
#if !SCN_HAS_STD_REGEX_MULTILINE
7574
            if (*begin == CharT{'m'}) {
7575
                // clang-format off
7576
                handler.on_error("/m flag for regex isn't supported by regex backend");
7577
                // clang-format on
7578
            }
7579
#endif
7580
#endif
7581
0
            flags |= flag.second;
7582
0
            found_flag = true;
7583
0
            break;
7584
0
        }
7585
0
        if (!found_flag) {
7586
0
            handler.on_error("Invalid flag in regex");
7587
0
            return begin;
7588
0
        }
7589
0
    }
7590
0
    handler.on_regex_flags(flags);
7591
7592
0
    if (SCN_UNLIKELY(begin == end)) {
7593
0
        handler.on_error("Unexpected end of regex in format string");
7594
0
        return begin;
7595
0
    }
7596
7597
0
    return begin;
7598
#else
7599
    handler.on_error("Regular expression support is disabled");
7600
    return {};
7601
#endif
7602
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7603
7604
template <typename CharT, typename SpecHandler>
7605
constexpr const CharT* parse_format_specs(const CharT* begin,
7606
                                          const CharT* end,
7607
                                          SpecHandler&& handler)
7608
1.10M
{
7609
1.10M
    auto do_presentation = [&]() -> const CharT* {
7610
1.08M
        if (*begin == CharT{'['}) {
7611
18.3k
            auto set = parse_presentation_set(begin, end, handler);
7612
18.3k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
18.3k
            handler.on_character_set_string(set);
7619
18.3k
            return begin;
7620
18.3k
        }
7621
1.07M
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
1.07M
        presentation_type type = parse_presentation_type(*begin++);
7625
1.07M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
15.8k
            handler.on_error("Invalid type specifier in format string");
7627
15.8k
            return begin;
7628
15.8k
        }
7629
1.05M
        handler.on_type(type);
7630
1.05M
        return begin;
7631
1.07M
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
93.3k
    auto do_presentation = [&]() -> const CharT* {
7610
93.3k
        if (*begin == CharT{'['}) {
7611
4.92k
            auto set = parse_presentation_set(begin, end, handler);
7612
4.92k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
4.92k
            handler.on_character_set_string(set);
7619
4.92k
            return begin;
7620
4.92k
        }
7621
88.4k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
88.4k
        presentation_type type = parse_presentation_type(*begin++);
7625
88.4k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
3.52k
            handler.on_error("Invalid type specifier in format string");
7627
3.52k
            return begin;
7628
3.52k
        }
7629
84.8k
        handler.on_type(type);
7630
84.8k
        return begin;
7631
88.4k
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
54.4k
    auto do_presentation = [&]() -> const CharT* {
7610
54.4k
        if (*begin == CharT{'['}) {
7611
2.46k
            auto set = parse_presentation_set(begin, end, handler);
7612
2.46k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
2.46k
            handler.on_character_set_string(set);
7619
2.46k
            return begin;
7620
2.46k
        }
7621
52.0k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
52.0k
        presentation_type type = parse_presentation_type(*begin++);
7625
52.0k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
1.76k
            handler.on_error("Invalid type specifier in format string");
7627
1.76k
            return begin;
7628
1.76k
        }
7629
50.2k
        handler.on_type(type);
7630
50.2k
        return begin;
7631
52.0k
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
627k
    auto do_presentation = [&]() -> const CharT* {
7610
627k
        if (*begin == CharT{'['}) {
7611
7.28k
            auto set = parse_presentation_set(begin, end, handler);
7612
7.28k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
7.28k
            handler.on_character_set_string(set);
7619
7.28k
            return begin;
7620
7.28k
        }
7621
620k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
620k
        presentation_type type = parse_presentation_type(*begin++);
7625
620k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
7.04k
            handler.on_error("Invalid type specifier in format string");
7627
7.04k
            return begin;
7628
7.04k
        }
7629
613k
        handler.on_type(type);
7630
613k
        return begin;
7631
620k
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
313k
    auto do_presentation = [&]() -> const CharT* {
7610
313k
        if (*begin == CharT{'['}) {
7611
3.64k
            auto set = parse_presentation_set(begin, end, handler);
7612
3.64k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
3.64k
            handler.on_character_set_string(set);
7619
3.64k
            return begin;
7620
3.64k
        }
7621
310k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
310k
        presentation_type type = parse_presentation_type(*begin++);
7625
310k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
3.52k
            handler.on_error("Invalid type specifier in format string");
7627
3.52k
            return begin;
7628
3.52k
        }
7629
306k
        handler.on_type(type);
7630
306k
        return begin;
7631
310k
    };
7632
7633
1.10M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
1.10M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
1.03M
        return do_presentation();
7636
1.03M
    }
7637
7638
65.8k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
65.8k
    begin = parse_align(begin, end, handler);
7644
65.8k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
65.8k
    begin = parse_width(begin, end, handler);
7650
65.8k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
65.8k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
65.8k
    if (*begin == CharT{'L'}) {
7669
15.8k
        handler.on_localized();
7670
15.8k
        ++begin;
7671
15.8k
    }
7672
65.8k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
65.8k
    if (begin != end && *begin != CharT{'}'}) {
7678
50.0k
        do_presentation();
7679
50.0k
    }
7680
65.8k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
65.8k
    return begin;
7686
65.8k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7608
96.8k
{
7609
96.8k
    auto do_presentation = [&]() -> const CharT* {
7610
96.8k
        if (*begin == CharT{'['}) {
7611
96.8k
            auto set = parse_presentation_set(begin, end, handler);
7612
96.8k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
96.8k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
96.8k
                return begin;
7617
96.8k
            }
7618
96.8k
            handler.on_character_set_string(set);
7619
96.8k
            return begin;
7620
96.8k
        }
7621
96.8k
        if (*begin == CharT{'/'}) {
7622
96.8k
            return parse_presentation_regex(begin, end, handler);
7623
96.8k
        }
7624
96.8k
        presentation_type type = parse_presentation_type(*begin++);
7625
96.8k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
96.8k
            handler.on_error("Invalid type specifier in format string");
7627
96.8k
            return begin;
7628
96.8k
        }
7629
96.8k
        handler.on_type(type);
7630
96.8k
        return begin;
7631
96.8k
    };
7632
7633
96.8k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
96.8k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
81.3k
        return do_presentation();
7636
81.3k
    }
7637
7638
15.4k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
15.4k
    begin = parse_align(begin, end, handler);
7644
15.4k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
15.4k
    begin = parse_width(begin, end, handler);
7650
15.4k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
15.4k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
15.4k
    if (*begin == CharT{'L'}) {
7669
3.52k
        handler.on_localized();
7670
3.52k
        ++begin;
7671
3.52k
    }
7672
15.4k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
15.4k
    if (begin != end && *begin != CharT{'}'}) {
7678
11.9k
        do_presentation();
7679
11.9k
    }
7680
15.4k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
15.4k
    return begin;
7686
15.4k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7608
56.2k
{
7609
56.2k
    auto do_presentation = [&]() -> const CharT* {
7610
56.2k
        if (*begin == CharT{'['}) {
7611
56.2k
            auto set = parse_presentation_set(begin, end, handler);
7612
56.2k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
56.2k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
56.2k
                return begin;
7617
56.2k
            }
7618
56.2k
            handler.on_character_set_string(set);
7619
56.2k
            return begin;
7620
56.2k
        }
7621
56.2k
        if (*begin == CharT{'/'}) {
7622
56.2k
            return parse_presentation_regex(begin, end, handler);
7623
56.2k
        }
7624
56.2k
        presentation_type type = parse_presentation_type(*begin++);
7625
56.2k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
56.2k
            handler.on_error("Invalid type specifier in format string");
7627
56.2k
            return begin;
7628
56.2k
        }
7629
56.2k
        handler.on_type(type);
7630
56.2k
        return begin;
7631
56.2k
    };
7632
7633
56.2k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
56.2k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
48.5k
        return do_presentation();
7636
48.5k
    }
7637
7638
7.74k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
7.74k
    begin = parse_align(begin, end, handler);
7644
7.74k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
7.74k
    begin = parse_width(begin, end, handler);
7650
7.74k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
7.74k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
7.74k
    if (*begin == CharT{'L'}) {
7669
1.76k
        handler.on_localized();
7670
1.76k
        ++begin;
7671
1.76k
    }
7672
7.74k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
7.74k
    if (begin != end && *begin != CharT{'}'}) {
7678
5.98k
        do_presentation();
7679
5.98k
    }
7680
7.74k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
7.74k
    return begin;
7686
7.74k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7608
634k
{
7609
634k
    auto do_presentation = [&]() -> const CharT* {
7610
634k
        if (*begin == CharT{'['}) {
7611
634k
            auto set = parse_presentation_set(begin, end, handler);
7612
634k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
634k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
634k
                return begin;
7617
634k
            }
7618
634k
            handler.on_character_set_string(set);
7619
634k
            return begin;
7620
634k
        }
7621
634k
        if (*begin == CharT{'/'}) {
7622
634k
            return parse_presentation_regex(begin, end, handler);
7623
634k
        }
7624
634k
        presentation_type type = parse_presentation_type(*begin++);
7625
634k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
634k
            handler.on_error("Invalid type specifier in format string");
7627
634k
            return begin;
7628
634k
        }
7629
634k
        handler.on_type(type);
7630
634k
        return begin;
7631
634k
    };
7632
7633
634k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
634k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
606k
        return do_presentation();
7636
606k
    }
7637
7638
28.4k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
28.4k
    begin = parse_align(begin, end, handler);
7644
28.4k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
28.4k
    begin = parse_width(begin, end, handler);
7650
28.4k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
28.4k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
28.4k
    if (*begin == CharT{'L'}) {
7669
7.04k
        handler.on_localized();
7670
7.04k
        ++begin;
7671
7.04k
    }
7672
28.4k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
28.4k
    if (begin != end && *begin != CharT{'}'}) {
7678
21.3k
        do_presentation();
7679
21.3k
    }
7680
28.4k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
28.4k
    return begin;
7686
28.4k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7608
317k
{
7609
317k
    auto do_presentation = [&]() -> const CharT* {
7610
317k
        if (*begin == CharT{'['}) {
7611
317k
            auto set = parse_presentation_set(begin, end, handler);
7612
317k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
317k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
317k
                return begin;
7617
317k
            }
7618
317k
            handler.on_character_set_string(set);
7619
317k
            return begin;
7620
317k
        }
7621
317k
        if (*begin == CharT{'/'}) {
7622
317k
            return parse_presentation_regex(begin, end, handler);
7623
317k
        }
7624
317k
        presentation_type type = parse_presentation_type(*begin++);
7625
317k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
317k
            handler.on_error("Invalid type specifier in format string");
7627
317k
            return begin;
7628
317k
        }
7629
317k
        handler.on_type(type);
7630
317k
        return begin;
7631
317k
    };
7632
7633
317k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
317k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
303k
        return do_presentation();
7636
303k
    }
7637
7638
14.2k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
14.2k
    begin = parse_align(begin, end, handler);
7644
14.2k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
14.2k
    begin = parse_width(begin, end, handler);
7650
14.2k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
14.2k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
14.2k
    if (*begin == CharT{'L'}) {
7669
3.52k
        handler.on_localized();
7670
3.52k
        ++begin;
7671
3.52k
    }
7672
14.2k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
14.2k
    if (begin != end && *begin != CharT{'}'}) {
7678
10.6k
        do_presentation();
7679
10.6k
    }
7680
14.2k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
14.2k
    return begin;
7686
14.2k
}
7687
7688
template <typename CharT, typename Handler>
7689
constexpr const CharT* parse_replacement_field(const CharT* begin,
7690
                                               const CharT* end,
7691
                                               Handler& handler)
7692
1.10M
{
7693
1.10M
    struct id_adapter {
7694
1.10M
        constexpr void operator()()
7695
1.10M
        {
7696
1.10M
            arg_id = handler.on_arg_id();
7697
1.10M
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
7695
96.8k
        {
7696
96.8k
            arg_id = handler.on_arg_id();
7697
96.8k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
7695
56.2k
        {
7696
56.2k
            arg_id = handler.on_arg_id();
7697
56.2k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7695
634k
        {
7696
634k
            arg_id = handler.on_arg_id();
7697
634k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7695
317k
        {
7696
317k
            arg_id = handler.on_arg_id();
7697
317k
        }
7698
1.10M
        constexpr void operator()(std::size_t id)
7699
1.10M
        {
7700
0
            arg_id = handler.on_arg_id(id);
7701
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
7702
7703
1.10M
        constexpr void on_error(const char* msg)
7704
1.10M
        {
7705
0
            SCN_UNLIKELY_ATTR
7706
0
            handler.on_error(msg);
7707
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
7708
7709
1.10M
        Handler& handler;
7710
1.10M
        std::size_t arg_id;
7711
1.10M
    };
7712
7713
1.10M
    ++begin;
7714
1.10M
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
1.10M
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
1.10M
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
1.10M
    else {
7726
1.10M
        auto adapter = id_adapter{handler, 0};
7727
1.10M
        begin = parse_arg_id(begin, end, adapter);
7728
7729
1.10M
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
1.10M
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
1.10M
        else if (*begin == CharT{':'}) {
7738
1.10M
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
1.10M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
1.10M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
31.7k
                handler.on_error("Unknown format specifier");
7745
31.7k
                return begin;
7746
31.7k
            }
7747
1.10M
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
1.10M
    }
7754
1.07M
    return begin + 1;
7755
1.10M
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7692
96.8k
{
7693
96.8k
    struct id_adapter {
7694
96.8k
        constexpr void operator()()
7695
96.8k
        {
7696
96.8k
            arg_id = handler.on_arg_id();
7697
96.8k
        }
7698
96.8k
        constexpr void operator()(std::size_t id)
7699
96.8k
        {
7700
96.8k
            arg_id = handler.on_arg_id(id);
7701
96.8k
        }
7702
7703
96.8k
        constexpr void on_error(const char* msg)
7704
96.8k
        {
7705
96.8k
            SCN_UNLIKELY_ATTR
7706
96.8k
            handler.on_error(msg);
7707
96.8k
        }
7708
7709
96.8k
        Handler& handler;
7710
96.8k
        std::size_t arg_id;
7711
96.8k
    };
7712
7713
96.8k
    ++begin;
7714
96.8k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
96.8k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
96.8k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
96.8k
    else {
7726
96.8k
        auto adapter = id_adapter{handler, 0};
7727
96.8k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
96.8k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
96.8k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
96.8k
        else if (*begin == CharT{':'}) {
7738
96.8k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
96.8k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
96.8k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
7.04k
                handler.on_error("Unknown format specifier");
7745
7.04k
                return begin;
7746
7.04k
            }
7747
96.8k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
96.8k
    }
7754
89.8k
    return begin + 1;
7755
96.8k
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7692
56.2k
{
7693
56.2k
    struct id_adapter {
7694
56.2k
        constexpr void operator()()
7695
56.2k
        {
7696
56.2k
            arg_id = handler.on_arg_id();
7697
56.2k
        }
7698
56.2k
        constexpr void operator()(std::size_t id)
7699
56.2k
        {
7700
56.2k
            arg_id = handler.on_arg_id(id);
7701
56.2k
        }
7702
7703
56.2k
        constexpr void on_error(const char* msg)
7704
56.2k
        {
7705
56.2k
            SCN_UNLIKELY_ATTR
7706
56.2k
            handler.on_error(msg);
7707
56.2k
        }
7708
7709
56.2k
        Handler& handler;
7710
56.2k
        std::size_t arg_id;
7711
56.2k
    };
7712
7713
56.2k
    ++begin;
7714
56.2k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
56.2k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
56.2k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
56.2k
    else {
7726
56.2k
        auto adapter = id_adapter{handler, 0};
7727
56.2k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
56.2k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
56.2k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
56.2k
        else if (*begin == CharT{':'}) {
7738
56.2k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
56.2k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
56.2k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
3.52k
                handler.on_error("Unknown format specifier");
7745
3.52k
                return begin;
7746
3.52k
            }
7747
56.2k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
56.2k
    }
7754
52.7k
    return begin + 1;
7755
56.2k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7692
634k
{
7693
634k
    struct id_adapter {
7694
634k
        constexpr void operator()()
7695
634k
        {
7696
634k
            arg_id = handler.on_arg_id();
7697
634k
        }
7698
634k
        constexpr void operator()(std::size_t id)
7699
634k
        {
7700
634k
            arg_id = handler.on_arg_id(id);
7701
634k
        }
7702
7703
634k
        constexpr void on_error(const char* msg)
7704
634k
        {
7705
634k
            SCN_UNLIKELY_ATTR
7706
634k
            handler.on_error(msg);
7707
634k
        }
7708
7709
634k
        Handler& handler;
7710
634k
        std::size_t arg_id;
7711
634k
    };
7712
7713
634k
    ++begin;
7714
634k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
634k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
634k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
634k
    else {
7726
634k
        auto adapter = id_adapter{handler, 0};
7727
634k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
634k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
634k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
634k
        else if (*begin == CharT{':'}) {
7738
634k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
634k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
634k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
14.0k
                handler.on_error("Unknown format specifier");
7745
14.0k
                return begin;
7746
14.0k
            }
7747
634k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
634k
    }
7754
620k
    return begin + 1;
7755
634k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7692
317k
{
7693
317k
    struct id_adapter {
7694
317k
        constexpr void operator()()
7695
317k
        {
7696
317k
            arg_id = handler.on_arg_id();
7697
317k
        }
7698
317k
        constexpr void operator()(std::size_t id)
7699
317k
        {
7700
317k
            arg_id = handler.on_arg_id(id);
7701
317k
        }
7702
7703
317k
        constexpr void on_error(const char* msg)
7704
317k
        {
7705
317k
            SCN_UNLIKELY_ATTR
7706
317k
            handler.on_error(msg);
7707
317k
        }
7708
7709
317k
        Handler& handler;
7710
317k
        std::size_t arg_id;
7711
317k
    };
7712
7713
317k
    ++begin;
7714
317k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
317k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
317k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
317k
    else {
7726
317k
        auto adapter = id_adapter{handler, 0};
7727
317k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
317k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
317k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
317k
        else if (*begin == CharT{':'}) {
7738
317k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
317k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
317k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
7.04k
                handler.on_error("Unknown format specifier");
7745
7.04k
                return begin;
7746
7.04k
            }
7747
317k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
317k
    }
7754
310k
    return begin + 1;
7755
317k
}
7756
7757
template <bool IsConstexpr, typename CharT, typename Handler>
7758
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
7759
                                        Handler&& handler)
7760
1.10M
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
1.10M
    auto begin = format.data();
7764
1.10M
    auto it = begin;
7765
1.10M
    const auto end = format.data() + format.size();
7766
7767
2.13M
    while (it != end) {
7768
1.10M
        const auto ch = *it++;
7769
1.10M
        if (ch == CharT{'{'}) {
7770
1.10M
            handler.on_literal_text(begin, it - 1);
7771
7772
1.10M
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
1.10M
            if (!handler.get_error()) {
7774
79.2k
                return;
7775
79.2k
            }
7776
1.10M
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
1.10M
    }
7787
7788
1.02M
    handler.on_literal_text(begin, end);
7789
1.02M
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7760
96.8k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
96.8k
    auto begin = format.data();
7764
96.8k
    auto it = begin;
7765
96.8k
    const auto end = format.data() + format.size();
7766
7767
176k
    while (it != end) {
7768
96.8k
        const auto ch = *it++;
7769
96.8k
        if (ch == CharT{'{'}) {
7770
96.8k
            handler.on_literal_text(begin, it - 1);
7771
7772
96.8k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
96.8k
            if (!handler.get_error()) {
7774
17.6k
                return;
7775
17.6k
            }
7776
96.8k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
96.8k
    }
7787
7788
79.2k
    handler.on_literal_text(begin, end);
7789
79.2k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7760
56.2k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
56.2k
    auto begin = format.data();
7764
56.2k
    auto it = begin;
7765
56.2k
    const auto end = format.data() + format.size();
7766
7767
103k
    while (it != end) {
7768
56.2k
        const auto ch = *it++;
7769
56.2k
        if (ch == CharT{'{'}) {
7770
56.2k
            handler.on_literal_text(begin, it - 1);
7771
7772
56.2k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
56.2k
            if (!handler.get_error()) {
7774
8.81k
                return;
7775
8.81k
            }
7776
56.2k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
56.2k
    }
7787
7788
47.4k
    handler.on_literal_text(begin, end);
7789
47.4k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7760
634k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
634k
    auto begin = format.data();
7764
634k
    auto it = begin;
7765
634k
    const auto end = format.data() + format.size();
7766
7767
1.23M
    while (it != end) {
7768
634k
        const auto ch = *it++;
7769
634k
        if (ch == CharT{'{'}) {
7770
634k
            handler.on_literal_text(begin, it - 1);
7771
7772
634k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
634k
            if (!handler.get_error()) {
7774
35.2k
                return;
7775
35.2k
            }
7776
634k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
634k
    }
7787
7788
599k
    handler.on_literal_text(begin, end);
7789
599k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7760
317k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
317k
    auto begin = format.data();
7764
317k
    auto it = begin;
7765
317k
    const auto end = format.data() + format.size();
7766
7767
617k
    while (it != end) {
7768
317k
        const auto ch = *it++;
7769
317k
        if (ch == CharT{'{'}) {
7770
317k
            handler.on_literal_text(begin, it - 1);
7771
7772
317k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
317k
            if (!handler.get_error()) {
7774
17.6k
                return;
7775
17.6k
            }
7776
317k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
317k
    }
7787
7788
299k
    handler.on_literal_text(begin, end);
7789
299k
}
7790
7791
template <bool IsConstexpr, typename CharT, typename Handler>
7792
constexpr scan_expected<void> parse_format_string(
7793
    std::basic_string_view<CharT> format,
7794
    Handler&& handler)
7795
1.10M
{
7796
1.10M
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
1.10M
    handler.check_args_exhausted();
7798
1.10M
    return handler.get_error();
7799
1.10M
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7795
96.8k
{
7796
96.8k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
96.8k
    handler.check_args_exhausted();
7798
96.8k
    return handler.get_error();
7799
96.8k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7795
56.2k
{
7796
56.2k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
56.2k
    handler.check_args_exhausted();
7798
56.2k
    return handler.get_error();
7799
56.2k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7795
634k
{
7796
634k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
634k
    handler.check_args_exhausted();
7798
634k
    return handler.get_error();
7799
634k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7795
317k
{
7796
317k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
317k
    handler.check_args_exhausted();
7798
317k
    return handler.get_error();
7799
317k
}
7800
7801
enum class arg_type_category {
7802
    none,
7803
    integer,
7804
    unsigned_integer,
7805
    floating,
7806
    string,
7807
    pointer,
7808
    boolean,
7809
    character,
7810
    custom
7811
};
7812
7813
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7814
15.8k
{
7815
15.8k
    switch (type) {
7816
0
        case arg_type::none_type:
7817
0
            return arg_type_category::none;
7818
7819
0
        case arg_type::schar_type:
7820
0
        case arg_type::short_type:
7821
0
        case arg_type::int_type:
7822
0
        case arg_type::long_type:
7823
0
        case arg_type::llong_type:
7824
0
            return arg_type_category::integer;
7825
7826
0
        case arg_type::uchar_type:
7827
0
        case arg_type::ushort_type:
7828
0
        case arg_type::uint_type:
7829
0
        case arg_type::ulong_type:
7830
0
        case arg_type::ullong_type:
7831
0
            return arg_type_category::unsigned_integer;
7832
7833
0
        case arg_type::pointer_type:
7834
0
            return arg_type_category::pointer;
7835
0
        case arg_type::bool_type:
7836
0
            return arg_type_category::boolean;
7837
0
        case arg_type::narrow_character_type:
7838
0
        case arg_type::wide_character_type:
7839
0
        case arg_type::code_point_type:
7840
0
            return arg_type_category::character;
7841
7842
0
        case arg_type::float_type:
7843
0
        case arg_type::double_type:
7844
0
        case arg_type::ldouble_type:
7845
0
            return arg_type_category::floating;
7846
7847
1.76k
        case arg_type::narrow_string_view_type:
7848
5.28k
        case arg_type::narrow_string_type:
7849
8.81k
        case arg_type::wide_string_view_type:
7850
15.8k
        case arg_type::wide_string_type:
7851
15.8k
            return arg_type_category::string;
7852
7853
0
        case arg_type::custom_type:
7854
0
            return arg_type_category::custom;
7855
7856
0
            SCN_CLANG_PUSH
7857
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7858
0
        default:
7859
0
            SCN_ENSURE(false);
7860
15.8k
            SCN_UNREACHABLE;
7861
15.8k
            SCN_CLANG_POP
7862
15.8k
    }
7863
7864
15.8k
    SCN_UNREACHABLE;
7865
15.8k
}
7866
7867
template <typename Handler>
7868
class specs_checker : public Handler {
7869
public:
7870
    template <typename H>
7871
    constexpr specs_checker(H&& handler, arg_type type)
7872
1.10M
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
1.10M
    {
7874
1.10M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
1.10M
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
96.8k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
96.8k
    {
7874
96.8k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
96.8k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
56.2k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
56.2k
    {
7874
56.2k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
56.2k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
634k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
634k
    {
7874
634k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
634k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
317k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
317k
    {
7874
317k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
317k
    }
7876
7877
    constexpr void on_localized()
7878
15.8k
    {
7879
15.8k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
15.8k
        if (cat != arg_type_category::integer &&
7881
15.8k
            cat != arg_type_category::unsigned_integer &&
7882
15.8k
            cat != arg_type_category::floating &&
7883
15.8k
            cat != arg_type_category::boolean) {
7884
15.8k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
15.8k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
15.8k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::on_localized()
Line
Count
Source
7878
3.52k
    {
7879
3.52k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
3.52k
        if (cat != arg_type_category::integer &&
7881
3.52k
            cat != arg_type_category::unsigned_integer &&
7882
3.52k
            cat != arg_type_category::floating &&
7883
3.52k
            cat != arg_type_category::boolean) {
7884
3.52k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
3.52k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
3.52k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::on_localized()
Line
Count
Source
7878
1.76k
    {
7879
1.76k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
1.76k
        if (cat != arg_type_category::integer &&
7881
1.76k
            cat != arg_type_category::unsigned_integer &&
7882
1.76k
            cat != arg_type_category::floating &&
7883
1.76k
            cat != arg_type_category::boolean) {
7884
1.76k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
1.76k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
1.76k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::on_localized()
Line
Count
Source
7878
7.04k
    {
7879
7.04k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
7.04k
        if (cat != arg_type_category::integer &&
7881
7.04k
            cat != arg_type_category::unsigned_integer &&
7882
7.04k
            cat != arg_type_category::floating &&
7883
7.04k
            cat != arg_type_category::boolean) {
7884
7.04k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
7.04k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
7.04k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::on_localized()
Line
Count
Source
7878
3.52k
    {
7879
3.52k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
3.52k
        if (cat != arg_type_category::integer &&
7881
3.52k
            cat != arg_type_category::unsigned_integer &&
7882
3.52k
            cat != arg_type_category::floating &&
7883
3.52k
            cat != arg_type_category::boolean) {
7884
3.52k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
3.52k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
3.52k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
7892
7893
private:
7894
    arg_type m_arg_type;
7895
};
7896
7897
template <typename Handler>
7898
constexpr void check_int_type_specs(const format_specs& specs,
7899
                                    Handler&& handler)
7900
0
{
7901
0
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7902
0
        return handler.on_error("Invalid type specifier for integer type");
7903
0
    }
7904
0
    if (specs.localized) {
7905
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7906
            // clang-format off
7907
0
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7908
            // clang-format on
7909
0
            return;
7910
0
        }
7911
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7912
            // clang-format off
7913
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7914
            // clang-format on
7915
0
        }
7916
0
    }
7917
0
}
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7918
7919
template <typename Handler>
7920
constexpr void check_char_type_specs(const format_specs& specs,
7921
                                     Handler&& handler)
7922
0
{
7923
0
    if (specs.type > presentation_type::int_hex ||
7924
0
        specs.type == presentation_type::int_arbitrary_base) {
7925
0
        SCN_UNLIKELY_ATTR
7926
0
        return handler.on_error("Invalid type specifier for character type");
7927
0
    }
7928
0
}
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7929
7930
template <typename Handler>
7931
constexpr void check_code_point_type_specs(const format_specs& specs,
7932
                                           Handler&& handler)
7933
0
{
7934
0
    if (specs.type != presentation_type::none &&
7935
0
        specs.type != presentation_type::character) {
7936
0
        SCN_UNLIKELY_ATTR
7937
0
        return handler.on_error("Invalid type specifier for code point type");
7938
0
    }
7939
0
}
7940
7941
template <typename Handler>
7942
constexpr void check_float_type_specs(const format_specs& specs,
7943
                                      Handler&& handler)
7944
0
{
7945
0
    if (specs.type != presentation_type::none &&
7946
0
        (specs.type < presentation_type::float_hex ||
7947
0
         specs.type > presentation_type::float_general)) {
7948
0
        SCN_UNLIKELY_ATTR
7949
0
        return handler.on_error("Invalid type specifier for float type");
7950
0
    }
7951
0
}
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7952
7953
template <typename Handler>
7954
constexpr void check_string_type_specs(const format_specs& specs,
7955
                                       Handler&& handler)
7956
1.07M
{
7957
1.07M
    if (specs.type == presentation_type::none ||
7958
1.07M
        specs.type == presentation_type::string ||
7959
1.07M
        specs.type == presentation_type::string_set ||
7960
1.07M
        specs.type == presentation_type::regex ||
7961
1.07M
        specs.type == presentation_type::regex_escaped) {
7962
1.05M
        return;
7963
1.05M
    }
7964
15.8k
    if (specs.type == presentation_type::character) {
7965
15.8k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7966
            // clang-format off
7967
15.8k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7968
            // clang-format on
7969
15.8k
        }
7970
0
        return;
7971
15.8k
    }
7972
0
    SCN_UNLIKELY_ATTR
7973
0
    handler.on_error("Invalid type specifier for string");
7974
0
}
Unexecuted instantiation: void scn::v4::detail::check_string_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_string_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
7956
1.07M
{
7957
1.07M
    if (specs.type == presentation_type::none ||
7958
1.07M
        specs.type == presentation_type::string ||
7959
1.07M
        specs.type == presentation_type::string_set ||
7960
1.07M
        specs.type == presentation_type::regex ||
7961
1.07M
        specs.type == presentation_type::regex_escaped) {
7962
1.05M
        return;
7963
1.05M
    }
7964
15.8k
    if (specs.type == presentation_type::character) {
7965
15.8k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7966
            // clang-format off
7967
15.8k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7968
            // clang-format on
7969
15.8k
        }
7970
0
        return;
7971
15.8k
    }
7972
0
    SCN_UNLIKELY_ATTR
7973
0
    handler.on_error("Invalid type specifier for string");
7974
0
}
7975
7976
template <typename Handler>
7977
constexpr void check_pointer_type_specs(const format_specs& specs,
7978
                                        Handler&& handler)
7979
0
{
7980
0
    if (specs.type != presentation_type::none &&
7981
0
        specs.type != presentation_type::pointer) {
7982
0
        SCN_UNLIKELY_ATTR
7983
0
        return handler.on_error("Invalid type specifier for pointer");
7984
0
    }
7985
0
}
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7986
7987
template <typename Handler>
7988
constexpr void check_bool_type_specs(const format_specs& specs,
7989
                                     Handler&& handler)
7990
0
{
7991
0
    if (specs.type != presentation_type::none &&
7992
0
        specs.type != presentation_type::string &&
7993
0
        specs.type != presentation_type::int_generic &&
7994
0
        specs.type != presentation_type::int_hex &&
7995
0
        specs.type != presentation_type::int_binary &&
7996
0
        specs.type != presentation_type::int_unsigned_decimal &&
7997
0
        specs.type != presentation_type::int_octal &&
7998
0
        specs.type != presentation_type::int_decimal) {
7999
0
        SCN_UNLIKELY_ATTR
8000
0
        return handler.on_error("Invalid type specifier for boolean");
8001
0
    }
8002
0
}
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
8003
8004
template <typename Handler>
8005
constexpr void check_regex_type_specs(const format_specs& specs,
8006
                                      Handler&& handler)
8007
0
{
8008
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
8009
0
                     specs.charset_string_size == 0)) {
8010
        // clang-format off
8011
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
8012
        // clang-format on
8013
0
    }
8014
0
    if (specs.type == presentation_type::regex ||
8015
0
        specs.type == presentation_type::regex_escaped) {
8016
0
        return;
8017
0
    }
8018
0
    SCN_UNLIKELY_ATTR
8019
0
    handler.on_error("Invalid type specifier for regex_matches");
8020
0
}
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
8021
}  // namespace detail
8022
8023
/**
8024
 * \defgroup format-string Format strings
8025
 *
8026
 * \brief Format string description
8027
 *
8028
 * The format string syntax is heavily influenced by {fmt} and
8029
 * `std::format`, and is largely compatible with it. Scanning functions,
8030
 * such as `scn::scan` and
8031
 * `scn::input`, use the format string syntax described in this section.
8032
 *
8033
 * Format strings consist of:
8034
 *
8035
 *  * Replacement fields, which are surrounded by curly braces `{}`.
8036
 *
8037
 *  * Non-whitespace characters (except `{}`; for literal braces, use
8038
 *    `{{` and `}}`), which consume exactly one identical character from the
8039
 *    input
8040
 *
8041
 *  * Whitespace characters, which consume any and all available consecutive
8042
 *    whitespace from the input.
8043
 *
8044
 * Literal characters are matched by code point one-to-one, with no
8045
 * normalization being done.
8046
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
8047
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
8048
 *
8049
 * Characters (code points) are considered to be whitespace characters by
8050
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
8051
 * These code points are:
8052
 *
8053
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
8054
 *  * U+0085 (next line)
8055
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
8056
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
8057
 *
8058
 * The grammar for a replacement field is as follows:
8059
 *
8060
 * \code
8061
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
8062
 * arg-id              ::= positive-integer
8063
 *
8064
 * format-spec         ::= [fill-and-align]
8065
 *                         [width] [precision]
8066
 *                         ['L'] [type]
8067
 * fill-and-align      ::= [fill] align
8068
 * fill                ::= any character other than
8069
 *                         '{' or '}'
8070
 * align               ::= one of '<' '>' '^'
8071
 * width               ::= positive-integer
8072
 * precision           ::= '.' nonnegative-integer
8073
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
8074
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
8075
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
8076
 * \endcode
8077
 *
8078
 * \section arg-ids Argument IDs
8079
 *
8080
 * The `arg-id` specifier can be used to index arguments manually.
8081
 * If manual indexing is used, all of the indices in a format string must be
8082
 * stated explicitly. The same `arg-id` can appear in the format string
8083
 * only once, and must refer to a valid argument.
8084
 *
8085
 * \code{.cpp}
8086
 * // Format string equivalent to "{0} to {1}"
8087
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
8088
 * // a->values() == (2, 300)
8089
 *
8090
 * // Manual indexing
8091
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
8092
 * // b->values() == (300, 2)
8093
 *
8094
 * // INVALID:
8095
 * // Automatic and manual indexing is mixed
8096
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
8097
 *
8098
 * // INVALID:
8099
 * // Same argument is referred to multiple times
8100
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
8101
 *
8102
 * // INVALID:
8103
 * // {2} does not refer to an argument
8104
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
8105
 * \endcode
8106
 *
8107
 * \section fill-and-align Fill and align
8108
 *
8109
 * Alignment allows for skipping character before and/or after a value.
8110
 * There are three possible values for alignment:
8111
 *
8112
 * <table>
8113
 * <caption id="align-table">
8114
 * Alignment options
8115
 * </caption>
8116
 *
8117
 * <tr><th>Option</th> <th>Meaning</th></tr>
8118
 *
8119
 * <tr>
8120
 * <td>`<`</td>
8121
 * <td>
8122
 * Align the value to the left (skips fill characters after the value)
8123
 * </td>
8124
 * </tr>
8125
 *
8126
 * <tr>
8127
 * <td>`>`</td>
8128
 * <td>
8129
 * Align the value to the right (skips fill characters before the value)
8130
 * </td>
8131
 * </tr>
8132
 *
8133
 * <tr>
8134
 * <td>`^`</td>
8135
 * <td>
8136
 * Align the value to the center
8137
 * (skips fill characters both before and after the value)
8138
 * </td>
8139
 * </tr>
8140
 * </table>
8141
 *
8142
 * The fill character can be any Unicode code point, except for `{` and `}`.
8143
 * The default fill is the space character `' '`.
8144
 *
8145
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
8146
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
8147
 * the default alignment is `>`.
8148
 * Otherwise, the default alignment is `<`.
8149
 *
8150
 * In addition to the skipping of fill characters,
8151
 * for format type specifiers with the `>` default alignment,
8152
 * preceding whitespace is automatically skipped.
8153
 * This preceding whitespace isn't counted as part of the field width,
8154
 * as described below.
8155
 *
8156
 * The number of fill characters consumed can be controlled with the width and
8157
 * precision specifiers.
8158
 *
8159
 * \section width Width
8160
 *
8161
 * Width specifies the minimum number of characters that will be read from
8162
 * the source range. It can be any unsigned integer. Any fill characters skipped
8163
 * are included in the width
8164
 *
8165
 * For the purposes of width calculation, the same algorithm is used that in
8166
 * {fmt}. Every code point has a width of one, except the following ones
8167
 * have a width of 2:
8168
 *
8169
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
8170
 *   Derived Extracted Property as described by UAX#44
8171
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
8172
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
8173
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
8174
 *
8175
 * \section precision Precision
8176
 *
8177
 * Precision specifies the maximum number of characters that will be read from
8178
 * the source range. The method for counting characters is the same as above,
8179
 * with the width field.
8180
 *
8181
 * \section localized Localized
8182
 *
8183
 * The `L` flag enables localized scanning.
8184
 * Its effects are different for each type it is used with:
8185
 *
8186
 *  * For integers, it enables locale-specific thousands separators
8187
 *  * For floating-point numbers, it enables locale-specific thousands and
8188
 *    radix (decimal) separators
8189
 *  * For booleans, it enables locale-specific textual representations (for
8190
 *    `true` and `false`)
8191
 *  * For other types, it has no effect
8192
 *
8193
 * \section type Type specifier
8194
 *
8195
 * The type specifier determines how the data is to be scanned.
8196
 * The type of the argument to be scanned determines what flags are valid.
8197
 *
8198
 * \subsection type-string Type specifier: strings
8199
 *
8200
 * <table>
8201
 * <caption id="type-string-table">
8202
 * String types (`std::basic_string` and `std::basic_string_view`)
8203
 * </caption>
8204
 * <tr><th>Type</th> <th>Meaning</th></tr>
8205
 * <tr>
8206
 * <td>none, `s`</td>
8207
 * <td>
8208
 * Copies from the input until a whitespace character is encountered, or,
8209
 * if using the `<` (left) or `^` (center) alignment,
8210
 * a fill character is encountered.
8211
 * </td>
8212
 * </tr>
8213
 * <tr>
8214
 * <td>`c`</td>
8215
 * <td>
8216
 * Copies from the input until the field width is exhausted.
8217
 * Doesn't skip preceding whitespace.
8218
 * Errors if no field precision is provided.
8219
 * </td>
8220
 * </tr>
8221
 * <tr>
8222
 * <td>`[...]`</td>
8223
 * <td>
8224
 * Character set matching: copies from the input until a character not specified
8225
 * in the set is encountered. Character ranges can be specified with `-`, and
8226
 * the entire selection can be inverted with a prefix `^`. Matches and supports
8227
 * arbitrary Unicode code points.
8228
 * Doesn't skip preceding whitespace.
8229
 * </td>
8230
 * </tr>
8231
 * <tr>
8232
 * <td>`/<regex>/<flags>`</td>
8233
 * <td>
8234
 * Regular expression matching: copies from the input until the input does not
8235
 * match the regex.
8236
 * Doesn't skip preceding whitespace.
8237
 * \see regex
8238
 * </td>
8239
 * </tr>
8240
 * </table>
8241
 *
8242
 * \note `std::basic_string_view` can only be scanned if the source is
8243
 * contiguous.
8244
 *
8245
 * \subsection type-int Type specifier: integers
8246
 *
8247
 * Integer values are scanned as if by using `std::from_chars`,
8248
 * except a positive `+` sign and a base prefix (like `0x`) are always
8249
 * allowed to be present.
8250
 *
8251
 * <table>
8252
 * <caption id="type-int-table">
8253
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
8254
 * `int`, `long`, and `long long`)
8255
 * </caption>
8256
 * <tr><th>Type</th> <th>Meaning</th></tr>
8257
 * <tr>
8258
 * <td>`b`, `B`</td>
8259
 * <td>
8260
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
8261
 * </td>
8262
 * </tr>
8263
 * <tr>
8264
 * <td>`o`, `O`</td>
8265
 * <td>
8266
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
8267
 * `0`.
8268
 * </td>
8269
 * </tr>
8270
 * <tr>
8271
 * <td>`x`, `X`</td>
8272
 * <td>
8273
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
8274
 * </td>
8275
 * </tr>
8276
 * <tr>
8277
 * <td>`d`</td>
8278
 * <td>
8279
 * `std::from_chars` with base `10`. No base prefix allowed.
8280
 * </td>
8281
 * </tr>
8282
 * <tr>
8283
 * <td>`u`</td>
8284
 * <td>
8285
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
8286
 * </td>
8287
 * </tr>
8288
 * <tr>
8289
 * <td>`i`</td>
8290
 * <td>
8291
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
8292
 * </td>
8293
 * </tr>
8294
 * <tr>
8295
 * <td>`rXX` (where XX = [2, 36])</td>
8296
 * <td>
8297
 * Custom base, without a base prefix (r stands for radix).
8298
 * </td>
8299
 * </tr>
8300
 * <tr>
8301
 * <td>`c`</td>
8302
 * <td>
8303
 * Copies a character (code unit) from the input.
8304
 * </td>
8305
 * </tr>
8306
 * <tr>
8307
 * <td>none</td>
8308
 * <td>
8309
 * Same as `d`.
8310
 * </td>
8311
 * </tr>
8312
 * </table>
8313
 *
8314
 * \subsection type-char Type specifier: characters
8315
 *
8316
 * <table>
8317
 * <caption id="type-char-table">
8318
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
8319
 * </caption>
8320
 * <tr><th>Type</th> <th>Meaning</th></tr>
8321
 * <tr>
8322
 * <td>none, `c`</td>
8323
 * <td>
8324
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
8325
 * input.
8326
 * </td>
8327
 * </tr>
8328
 * <tr>
8329
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8330
 * <td>
8331
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
8332
 * </td>
8333
 * </tr>
8334
 * </table>
8335
 *
8336
 * \note When scanning characters (`char` and `wchar_t`), the source range is
8337
 * read a single code unit at a time, and encoding is not respected.
8338
 *
8339
 * \subsection type-float Type specifier: floating-point values
8340
 *
8341
 * Floating-point values are scanned as if by using `std::from_chars`,
8342
 * except a positive `+` sign and a base prefix (like `0x`) are always
8343
 * allowed to be present.
8344
 *
8345
 * <table>
8346
 * <caption id="type-float-table">
8347
 * Floating-point types (`float`, `double`, and `long double`)
8348
 * </caption>
8349
 * <tr><th>Type</th> <th>Meaning</th></tr>
8350
 * <tr>
8351
 * <td>`a`, `A`</td>
8352
 * <td>
8353
 * `std::from_chars` with `std::chars_format::hex`.
8354
 * Prefix `0x`/`0X` is allowed.
8355
 * </td>
8356
 * </tr>
8357
 * <tr>
8358
 * <td>`e`, `E`</td>
8359
 * <td>
8360
 * `std::from_chars` with `std::chars_format::scientific`.
8361
 * </td>
8362
 * </tr>
8363
 * <tr>
8364
 * <td>`f`, `F`</td>
8365
 * <td>
8366
 * `std::from_chars` with `std::chars_format::fixed`.
8367
 * </td>
8368
 * </tr>
8369
 * <tr>
8370
 * <td>`g`, `G`</td>
8371
 * <td>
8372
 * `std::from_chars` with `std::chars_format::general`.
8373
 * </td>
8374
 * </tr>
8375
 * <tr>
8376
 * <td>none</td>
8377
 * <td>
8378
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
8379
 * Prefix `0x`/`0X` is allowed.
8380
 * </td>
8381
 * </tr>
8382
 * </table>
8383
 *
8384
 * \subsection type-bool Type specifier: booleans
8385
 *
8386
 * <table>
8387
 * <caption id="type-bool-table">
8388
 * `bool`
8389
 * </caption>
8390
 * <tr><th>Type</th> <th>Meaning</th></tr>
8391
 * <tr>
8392
 * <td>`s`</td>
8393
 * <td>
8394
 * Allows for the textual representation (`true` or `false`).
8395
 * </td>
8396
 * </tr>
8397
 * <tr>
8398
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8399
 * <td>
8400
 * Allows for the integral/numeric representation (`0` or `1`).
8401
 * </td>
8402
 * </tr>
8403
 * <tr>
8404
 * <td>none</td>
8405
 * <td>
8406
 * Allows for both the textual and the integral/numeric representation.
8407
 * </td>
8408
 * </tr>
8409
 * </table>
8410
 */
8411
8412
namespace detail {
8413
/**
8414
 * A runtime format string
8415
 *
8416
 * \ingroup format-string
8417
 */
8418
template <typename CharT>
8419
struct basic_runtime_format_string {
8420
2.14M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
8420
282k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
8420
1.86M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
8421
8422
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
8423
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
8424
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
8425
        delete;
8426
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
8427
        delete;
8428
    ~basic_runtime_format_string() = default;
8429
8430
    std::basic_string_view<CharT> str;
8431
};
8432
}  // namespace detail
8433
8434
/**
8435
 * Create a runtime format string
8436
 *
8437
 * Can be used to avoid compile-time format string checking
8438
 *
8439
 * \ingroup format-string
8440
 */
8441
inline detail::basic_runtime_format_string<char> runtime_format(
8442
    std::string_view s)
8443
282k
{
8444
282k
    return s;
8445
282k
}
8446
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
8447
    std::wstring_view s)
8448
1.86M
{
8449
1.86M
    return s;
8450
1.86M
}
8451
8452
namespace detail {
8453
struct compile_string {};
8454
8455
template <typename Str>
8456
inline constexpr bool is_compile_string_v =
8457
    std::is_base_of_v<compile_string, Str>;
8458
8459
template <typename Scanner, typename ParseCtx>
8460
using dt_scanner_parse =
8461
    decltype(SCN_DECLVAL(Scanner&).parse(SCN_DECLVAL(ParseCtx&)));
8462
template <typename Scanner, typename T, typename Ctx>
8463
using dt_scanner_scan = decltype(SCN_DECLVAL(const Scanner&)
8464
                                     .scan(SCN_DECLVAL(T&), SCN_DECLVAL(Ctx&)));
8465
8466
template <typename Scanner, typename T, typename Ctx, typename ParseCtx>
8467
constexpr typename ParseCtx::iterator parse_format_specs_impl(
8468
    ParseCtx& parse_ctx)
8469
{
8470
    static_assert(
8471
        std::is_default_constructible_v<Scanner>,
8472
        "Specializations of scn::scanner must be default constructible");
8473
    static_assert(mp_valid<dt_scanner_parse, Scanner, ParseCtx>::value,
8474
                  "Specializations of scn::scanner must have a "
8475
                  "parse(ParseContext&) member function.");
8476
    static_assert(
8477
        std::is_same_v<mp_eval_or<void, dt_scanner_parse, Scanner, ParseCtx>,
8478
                       typename ParseCtx::iterator>,
8479
        "scn::scanner::parse(ParseContext&) must return "
8480
        "ParseContext::iterator. To report an error from scanner::parse, "
8481
        "either throw an exception derived from scn::scan_format_string_error, "
8482
        "or call ParseContext::on_error.");
8483
    static_assert(mp_valid<dt_scanner_scan, Scanner, T, Ctx>::value,
8484
                  "Specializations of scn::scanner must have a "
8485
                  "scan(T&, Context&) const member function.");
8486
    static_assert(
8487
        std::is_same_v<mp_eval_or<void, dt_scanner_scan, Scanner, T, Ctx>,
8488
                       scan_expected<typename Ctx::iterator>>,
8489
        "scn::scanner::scan(T&, Context&) must return "
8490
        "scan_expected<Context::iterator>.");
8491
8492
    auto s = Scanner{};
8493
    return s.parse(parse_ctx);
8494
}
8495
8496
template <typename T, typename Ctx, typename ParseCtx>
8497
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
8498
{
8499
    using char_type = typename Ctx::char_type;
8500
    using map_result =
8501
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
8502
            SCN_DECLVAL(T&)))>;
8503
    if constexpr (std::is_base_of_v<unscannable, map_result>) {
8504
        // Error will be reported by static_assert in make_value(),
8505
        // let's not muddy the compiler error by making more of them.
8506
        return parse_ctx.begin();
8507
    }
8508
    else {
8509
        using mapped_type =
8510
            std::conditional_t<arg_type_constant<T, char_type>::value !=
8511
                                   arg_type::custom_type,
8512
                               map_result, T>;
8513
        using scanner_type = typename Ctx::template scanner_type<mapped_type>;
8514
        return parse_format_specs_impl<scanner_type, T, Ctx, ParseCtx>(
8515
            parse_ctx);
8516
    }
8517
}
8518
8519
template <typename CharT, typename Source, typename... Args>
8520
class format_string_checker {
8521
public:
8522
    using parse_context_type = compile_parse_context<CharT>;
8523
    static constexpr auto num_args = sizeof...(Args);
8524
8525
    explicit constexpr format_string_checker(
8526
        std::basic_string_view<CharT> format_str)
8527
        : m_parse_context(source_tag<Source>, format_str, num_args, m_types),
8528
          m_parse_funcs{&parse_format_specs<Args,
8529
                                            default_context<CharT>,
8530
                                            parse_context_type>...},
8531
          m_types{arg_type_constant<Args, CharT>::value...}
8532
    {
8533
    }
8534
8535
    constexpr void on_literal_text(const CharT* begin, const CharT* end)
8536
    {
8537
        // TODO: Do we want to validate Unicode in format strings?
8538
        // We're dealing with text, so we probably do.
8539
        // We could do codeunit-to-codeunit matching,
8540
        // but that could get messy wrt. whitespace matching.
8541
        // It's simpler to not allow nonsense.
8542
        while (begin != end) {
8543
            const auto len = code_point_length_by_starting_code_unit(*begin);
8544
            if (SCN_UNLIKELY(len == 0 ||
8545
                             static_cast<size_t>(end - begin) < len)) {
8546
                return on_error("Invalid encoding in format string");
8547
            }
8548
8549
            const auto cp = decode_code_point_exhaustive(
8550
                std::basic_string_view<CharT>{begin, len});
8551
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
8552
                return on_error("Invalid encoding in format string");
8553
            }
8554
8555
            begin += len;
8556
        }
8557
    }
8558
8559
    constexpr auto on_arg_id()
8560
    {
8561
        return m_parse_context.next_arg_id();
8562
    }
8563
    constexpr auto on_arg_id(std::size_t id)
8564
    {
8565
        m_parse_context.check_arg_id(id);
8566
        return id;
8567
    }
8568
8569
    constexpr void on_replacement_field(size_t id, const CharT* begin)
8570
    {
8571
        set_arg_as_read(id);
8572
8573
        auto type = m_types[id];
8574
        check_arg_can_be_read(type);
8575
8576
        if (type == arg_type::narrow_regex_matches_type ||
8577
            type == arg_type::wide_regex_matches_type) {
8578
            // clang-format off
8579
            return on_error("Regular expression needs to be specified when reading regex_matches");
8580
            // clang-format on
8581
        }
8582
        if (type == arg_type::custom_type && id < num_args) {
8583
            // Only call scanner::parse to check for errors,
8584
            // we're discarding the result.
8585
            // The advance_to dance is done to point the parse context to the
8586
            // character after the `{`; right now, it points to that
8587
            const auto beg = begin;
8588
            m_parse_context.advance_to(begin);
8589
            m_parse_funcs[id](m_parse_context);
8590
            m_parse_context.advance_to(beg);
8591
        }
8592
    }
8593
8594
    constexpr const CharT* on_format_specs(std::size_t id,
8595
                                           const CharT* begin,
8596
                                           const CharT*)
8597
    {
8598
        set_arg_as_read(id);
8599
        check_arg_can_be_read(m_types[id]);
8600
8601
        m_parse_context.advance_to(begin);
8602
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
8603
    }
8604
8605
    constexpr void check_args_exhausted()
8606
    {
8607
        if (num_args == 0) {
8608
            return;
8609
        }
8610
        for (auto is_set : m_visited_args) {
8611
            if (!is_set) {
8612
                return on_error("Argument list not exhausted");
8613
            }
8614
        }
8615
    }
8616
8617
    void on_error(const char* msg)
8618
    {
8619
        SCN_UNLIKELY_ATTR
8620
        m_parse_context.on_error(msg);
8621
    }
8622
8623
    // Only to satisfy the concept and eliminate compiler errors,
8624
    // because errors are reported by failing to compile on_error above
8625
    // (it's not constexpr)
8626
    constexpr scan_expected<void> get_error() const
8627
    {
8628
        return {};
8629
    }
8630
8631
private:
8632
    constexpr void set_arg_as_read(size_t id)
8633
    {
8634
        if (id >= num_args) {
8635
            return on_error("Invalid out-of-range argument ID");
8636
        }
8637
        if (m_visited_args[id]) {
8638
            return on_error("Argument with this ID already scanned");
8639
        }
8640
        m_visited_args[id] = true;
8641
    }
8642
8643
    constexpr void check_arg_can_be_read(arg_type type)
8644
    {
8645
        if ((type == arg_type::narrow_string_view_type ||
8646
             type == arg_type::wide_string_view_type) &&
8647
            !m_parse_context.is_source_contiguous()) {
8648
            // clang-format off
8649
            return on_error("Cannot read a string_view from a non-contiguous source");
8650
            // clang-format on
8651
        }
8652
        if ((type == arg_type::narrow_string_view_type ||
8653
             type == arg_type::wide_string_view_type) &&
8654
            !m_parse_context.is_source_borrowed()) {
8655
            // clang-format off
8656
            return on_error("Cannot read a string_view from a non-borrowed source");
8657
            // clang-format on
8658
        }
8659
8660
        if ((type == arg_type::narrow_regex_matches_type ||
8661
             type == arg_type::wide_regex_matches_type) &&
8662
            !m_parse_context.is_source_contiguous()) {
8663
            // clang-format off
8664
            return on_error("Cannot read a regex_matches from a non-contiguous source");
8665
            // clang-format on
8666
        }
8667
    }
8668
8669
    using parse_func = const CharT* (*)(parse_context_type&);
8670
8671
    parse_context_type m_parse_context;
8672
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
8673
    arg_type m_types[num_args > 0 ? num_args : 1];
8674
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
8675
};
8676
8677
template <typename Source, typename... Args, typename Str>
8678
constexpr auto check_format_string(const Str&)
8679
    -> std::enable_if_t<!is_compile_string_v<Str>>
8680
0
{
8681
    // TODO: SCN_ENFORE_COMPILE_STRING?
8682
#if 0  // SCN_ENFORE_COMPILE_STRING
8683
    static_assert(dependent_false<Str>::value,
8684
              "SCN_ENFORCE_COMPILE_STRING requires all format "
8685
              "strings to use SCN_STRING.");
8686
#endif
8687
0
}
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [3]>), void>::type scn::v4::detail::check_format_string<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double, char [3]>(char const (&) [3])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
8688
8689
template <typename Source, typename... Args, typename Str>
8690
constexpr auto check_format_string(Str format_str)
8691
    -> std::enable_if_t<is_compile_string_v<Str>>
8692
{
8693
    using char_type = typename Str::char_type;
8694
8695
    SCN_GCC_PUSH
8696
    SCN_GCC_IGNORE("-Wconversion")
8697
    constexpr auto s = std::basic_string_view<char_type>{format_str};
8698
    SCN_GCC_POP
8699
8700
    using checker = format_string_checker<char_type, Source, Args...>;
8701
    constexpr bool invalid_format =
8702
        (parse_format_string<true>(s, checker(s)), true);
8703
    SCN_UNUSED(invalid_format);
8704
}
8705
8706
template <typename CharT, std::size_t N>
8707
constexpr std::basic_string_view<CharT> compile_string_to_view(
8708
    const CharT (&s)[N])
8709
{
8710
    return {s, N - 1};
8711
}
8712
template <typename CharT>
8713
constexpr std::basic_string_view<CharT> compile_string_to_view(
8714
    std::basic_string_view<CharT> s)
8715
{
8716
    return s;
8717
}
8718
}  // namespace detail
8719
8720
#define SCN_STRING_IMPL(s, base, expl)                                       \
8721
    [] {                                                                     \
8722
        struct SCN_COMPILE_STRING : base {                                   \
8723
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
8724
            SCN_MAYBE_UNUSED constexpr expl                                  \
8725
            operator ::std::basic_string_view<char_type>() const             \
8726
            {                                                                \
8727
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
8728
            }                                                                \
8729
        };                                                                   \
8730
        return SCN_COMPILE_STRING{};                                         \
8731
    }()
8732
8733
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
8734
8735
/**
8736
 * Compile-time format string
8737
 *
8738
 * \ingroup format-string
8739
 */
8740
template <typename CharT, typename Source, typename... Args>
8741
class basic_scan_format_string {
8742
public:
8743
    SCN_CLANG_PUSH
8744
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
8745
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
8746
#endif
8747
    template <
8748
        typename S,
8749
        std::enable_if_t<
8750
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
8751
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
8752
0
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
8753
0
    {
8754
#if SCN_HAS_CONSTEVAL
8755
        using checker = detail::format_string_checker<CharT, Source, Args...>;
8756
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
8757
        SCN_UNUSED(e);
8758
#else
8759
0
        detail::check_format_string<Source, Args...>(s);
8760
0
#endif
8761
0
    }
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEJdEEC2IA3_cTnPNS2_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS2_17basic_string_viewIcS5_EEEsr6detailE11is_not_selfISE_SA_EEvE4typeELPv0EEESG_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
8762
    SCN_CLANG_POP
8763
8764
    template <
8765
        typename OtherSource,
8766
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
8767
                                        detail::remove_cvref_t<OtherSource>> &&
8768
                         ranges::borrowed_range<Source> ==
8769
                             ranges::borrowed_range<OtherSource>>* = nullptr>
8770
    constexpr basic_scan_format_string(
8771
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
8772
        : m_str(other.get())
8773
    {
8774
    }
8775
8776
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
8777
2.14M
        : m_str(r.str)
8778
2.14M
    {
8779
2.14M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
89.1k
        : m_str(r.str)
8778
89.1k
    {
8779
89.1k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
89.1k
        : m_str(r.str)
8778
89.1k
    {
8779
89.1k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
104k
        : m_str(r.str)
8778
104k
    {
8779
104k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
620k
        : m_str(r.str)
8778
620k
    {
8779
620k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
620k
        : m_str(r.str)
8778
620k
    {
8779
620k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
620k
        : m_str(r.str)
8778
620k
    {
8779
620k
    }
8780
8781
    constexpr operator std::basic_string_view<CharT>() const
8782
2.14M
    {
8783
2.14M
        return m_str;
8784
2.14M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
89.1k
    {
8783
89.1k
        return m_str;
8784
89.1k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
89.1k
    {
8783
89.1k
        return m_str;
8784
89.1k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
104k
    {
8783
104k
        return m_str;
8784
104k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
620k
    {
8783
620k
        return m_str;
8784
620k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
620k
    {
8783
620k
        return m_str;
8784
620k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
620k
    {
8783
620k
        return m_str;
8784
620k
    }
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
8785
    constexpr std::basic_string_view<CharT> get() const
8786
    {
8787
        return m_str;
8788
    }
8789
8790
private:
8791
    std::basic_string_view<CharT> m_str;
8792
};
8793
8794
namespace detail {
8795
class locale_ref {
8796
#if !SCN_DISABLE_LOCALE
8797
public:
8798
2.65M
    constexpr locale_ref() = default;
8799
8800
    template <typename Locale>
8801
    explicit locale_ref(const Locale& loc);
8802
8803
    constexpr explicit operator bool() const noexcept
8804
0
    {
8805
0
        return m_locale != nullptr;
8806
0
    }
8807
8808
    template <typename Locale>
8809
    Locale get() const;
8810
8811
private:
8812
    const void* m_locale{nullptr};
8813
#else
8814
public:
8815
    constexpr locale_ref() = default;
8816
8817
    template <typename T>
8818
    constexpr explicit locale_ref(T&&)
8819
    {
8820
    }
8821
8822
    constexpr explicit operator bool() const noexcept
8823
    {
8824
        return true;
8825
    }
8826
#endif
8827
};
8828
}  // namespace detail
8829
8830
/////////////////////////////////////////////////////////////////
8831
// scan_context
8832
/////////////////////////////////////////////////////////////////
8833
8834
namespace detail {
8835
template <typename I>
8836
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
8837
template <typename I>
8838
inline constexpr bool is_comparable_with_nullptr =
8839
    mp_valid_v<apply_cmp_with_nullptr, I>;
8840
8841
template <typename Args>
8842
class scan_context_base {
8843
public:
8844
    /// Get argument at index `id`
8845
    constexpr auto arg(size_t id) const noexcept
8846
1.10M
    {
8847
1.10M
        return m_args.get(id);
8848
1.10M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::arg(unsigned long) const
Line
Count
Source
8846
153k
    {
8847
153k
        return m_args.get(id);
8848
153k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::arg(unsigned long) const
Line
Count
Source
8846
952k
    {
8847
952k
        return m_args.get(id);
8848
952k
    }
8849
8850
    constexpr const Args& args() const
8851
0
    {
8852
0
        return m_args;
8853
0
    }
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::args() const
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::args() const
8854
8855
    SCN_NODISCARD constexpr locale_ref locale() const
8856
1.07M
    {
8857
1.07M
        return m_locale;
8858
1.07M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::locale() const
Line
Count
Source
8856
142k
    {
8857
142k
        return m_locale;
8858
142k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::locale() const
Line
Count
Source
8856
931k
    {
8857
931k
        return m_locale;
8858
931k
    }
8859
8860
protected:
8861
    scan_context_base(Args args, locale_ref loc)
8862
1.10M
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
1.10M
    {
8864
1.10M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8862
153k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
153k
    {
8864
153k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8862
952k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
952k
    {
8864
952k
    }
8865
8866
    Args m_args;
8867
    locale_ref m_locale;
8868
};
8869
}  // namespace detail
8870
8871
/**
8872
 * \defgroup ctx Contexts and scanners
8873
 *
8874
 * \brief Lower-level APIs used for scanning individual values
8875
 *
8876
 * \section user-defined Scanning user-defined types
8877
 *
8878
 * User-defined types can be scanned by specializing the class template
8879
 * `scn::scanner`.
8880
 *
8881
 * \code{.cpp}
8882
 * struct mytype {
8883
 *   int key;
8884
 *   std::string value;
8885
 * };
8886
 *
8887
 * template <>
8888
 * struct scn::scanner<mytype> {
8889
 *   template <typename ParseContext>
8890
 *   constexpr auto parse(ParseCtx& pctx)
8891
 *     -> typename ParseContext::iterator {
8892
 *     // parse() implementation just returning begin():
8893
 *     // only permits empty format specifiers
8894
 *     return pctx.begin();
8895
 *   }
8896
 *
8897
 *   template <typename Context>
8898
 *   auto scan(mytype& val, Context& ctx)
8899
 *     -> scan_expected<typename Context::iterator> {
8900
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8901
 *       .transform([&](auto result) {
8902
 *         std::tie(val.key, val.value) = std::move(result->values());
8903
 *         return result.begin();
8904
 *       });
8905
 *   }
8906
 * };
8907
 * \endcode
8908
 *
8909
 * See also
8910
 * \ref g-usertypes
8911
 */
8912
8913
/**
8914
 * Scanning context.
8915
 *
8916
 * \ingroup ctx
8917
 */
8918
template <typename Range, typename CharT>
8919
class basic_scan_context
8920
    : public detail::scan_context_base<
8921
          basic_scan_args<basic_scan_context<Range, CharT>>> {
8922
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8923
8924
    using args_type = basic_scan_args<basic_scan_context>;
8925
    using arg_type = basic_scan_arg<basic_scan_context>;
8926
8927
public:
8928
    /// Character type of the input
8929
    using char_type = CharT;
8930
    using range_type = std::conditional_t<
8931
        std::is_same_v<Range, detail::buffer_range_tag>,
8932
        typename detail::basic_scan_buffer<char_type>::range_type,
8933
        Range>;
8934
    using iterator = ranges::iterator_t<range_type>;
8935
    using sentinel = ranges::sentinel_t<range_type>;
8936
    using parse_context_type = basic_scan_parse_context<char_type>;
8937
8938
    /**
8939
     * The scanner type associated with this scanning context.
8940
     */
8941
    template <typename T>
8942
    using scanner_type = scanner<T, char_type>;
8943
8944
    constexpr basic_scan_context(iterator curr,
8945
                                 args_type a,
8946
                                 detail::locale_ref loc = {})
8947
373k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
373k
    {
8949
373k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::basic_scan_context(scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8947
56.2k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
56.2k
    {
8949
56.2k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::basic_scan_context(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8947
317k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
317k
    {
8949
317k
    }
8950
8951
    basic_scan_context(const basic_scan_context&) = delete;
8952
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8953
8954
    basic_scan_context(basic_scan_context&&) = default;
8955
    basic_scan_context& operator=(basic_scan_context&&) = default;
8956
    ~basic_scan_context() = default;
8957
8958
    /**
8959
     * Returns an iterator pointing to the current position in the source
8960
     * range.
8961
     */
8962
    constexpr iterator begin() const
8963
1.08M
    {
8964
1.08M
        return m_current;
8965
1.08M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::begin() const
Line
Count
Source
8963
156k
    {
8964
156k
        return m_current;
8965
156k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::begin() const
Line
Count
Source
8963
927k
    {
8964
927k
        return m_current;
8965
927k
    }
8966
8967
    /**
8968
     * Returns a sentinel pointing to the end of the source range.
8969
     */
8970
    constexpr sentinel end() const
8971
363k
    {
8972
363k
        return ranges::default_sentinel;
8973
363k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::end() const
Line
Count
Source
8971
52.7k
    {
8972
52.7k
        return ranges::default_sentinel;
8973
52.7k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::end() const
Line
Count
Source
8971
310k
    {
8972
310k
        return ranges::default_sentinel;
8973
310k
    }
8974
8975
    /**
8976
     * Returns a subrange over `[begin(), end())`
8977
     */
8978
    constexpr auto range() const
8979
363k
    {
8980
363k
        return ranges::subrange{begin(), end()};
8981
363k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::range() const
Line
Count
Source
8979
52.7k
    {
8980
52.7k
        return ranges::subrange{begin(), end()};
8981
52.7k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::range() const
Line
Count
Source
8979
310k
    {
8980
310k
        return ranges::subrange{begin(), end()};
8981
310k
    }
8982
8983
    /// Advances the beginning of the source range to `it`
8984
    void advance_to(iterator it)
8985
347k
    {
8986
347k
        m_current = SCN_MOVE(it);
8987
347k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::advance_to(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8985
47.4k
    {
8986
47.4k
        m_current = SCN_MOVE(it);
8987
47.4k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::advance_to(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8985
299k
    {
8986
299k
        m_current = SCN_MOVE(it);
8987
299k
    }
8988
8989
private:
8990
    iterator m_current;
8991
};
8992
8993
namespace detail {
8994
template <typename T, typename ParseCtx>
8995
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
8996
    ParseCtx& pctx,
8997
    format_specs& specs);
8998
8999
template <typename T, typename Context>
9000
scan_expected<typename Context::iterator>
9001
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
9002
}  // namespace detail
9003
9004
/////////////////////////////////////////////////////////////////
9005
// scanner
9006
/////////////////////////////////////////////////////////////////
9007
9008
/**
9009
 * `scanner` specialization for all built-in types
9010
 *
9011
 * \ingroup ctx
9012
 */
9013
template <typename T, typename CharT>
9014
struct scanner<T,
9015
               CharT,
9016
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
9017
                                    detail::arg_type::custom_type &&
9018
                                !detail::is_type_disabled<T>>> {
9019
    template <typename ParseCtx>
9020
    constexpr auto parse(ParseCtx& pctx) -> typename ParseCtx::iterator
9021
    {
9022
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
9023
    }
9024
9025
    template <typename Context>
9026
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
9027
    {
9028
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
9029
    }
9030
9031
private:
9032
    detail::format_specs m_specs;
9033
};
9034
9035
namespace detail {
9036
template <typename T, typename ParseCtx>
9037
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
9038
    ParseCtx& pctx,
9039
    format_specs& specs)
9040
{
9041
    using char_type = typename ParseCtx::char_type;
9042
9043
    auto begin = pctx.begin();
9044
    const auto end = pctx.end();
9045
    if (begin == end) {
9046
        return begin;
9047
    }
9048
9049
    using handler_type = specs_setter;
9050
    const auto type = arg_type_constant<T, char_type>::value;
9051
    auto checker =
9052
        detail::specs_checker<handler_type>(handler_type(specs), type);
9053
9054
    const auto it =
9055
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
9056
9057
    switch (type) {
9058
        case arg_type::none_type:
9059
            SCN_FALLTHROUGH;
9060
        case arg_type::custom_type:
9061
            SCN_ENSURE(false);
9062
            break;
9063
9064
        case arg_type::bool_type:
9065
            check_bool_type_specs(specs, checker);
9066
            break;
9067
9068
        case arg_type::schar_type:
9069
        case arg_type::short_type:
9070
        case arg_type::int_type:
9071
        case arg_type::long_type:
9072
        case arg_type::llong_type:
9073
        case arg_type::uchar_type:
9074
        case arg_type::ushort_type:
9075
        case arg_type::uint_type:
9076
        case arg_type::ulong_type:
9077
        case arg_type::ullong_type:
9078
            check_int_type_specs(specs, checker);
9079
            break;
9080
9081
        case arg_type::narrow_character_type:
9082
        case arg_type::wide_character_type:
9083
        case arg_type::code_point_type:
9084
            check_char_type_specs(specs, checker);
9085
            break;
9086
9087
        case arg_type::float_type:
9088
        case arg_type::double_type:
9089
        case arg_type::ldouble_type:
9090
            check_float_type_specs(specs, checker);
9091
            break;
9092
9093
        case arg_type::narrow_string_type:
9094
        case arg_type::narrow_string_view_type:
9095
        case arg_type::wide_string_type:
9096
        case arg_type::wide_string_view_type:
9097
            check_string_type_specs(specs, checker);
9098
            break;
9099
9100
        case arg_type::pointer_type:
9101
            check_pointer_type_specs(specs, checker);
9102
            break;
9103
9104
        case arg_type::narrow_regex_matches_type:
9105
        case arg_type::wide_regex_matches_type:
9106
            check_regex_type_specs(specs, checker);
9107
            break;
9108
9109
            SCN_CLANG_PUSH
9110
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9111
9112
        default:
9113
            SCN_ENSURE(false);
9114
            SCN_UNREACHABLE;
9115
9116
            SCN_CLANG_POP
9117
    }
9118
9119
    if (specs.type == presentation_type::regex ||
9120
        specs.type == presentation_type::regex_escaped) {
9121
        if (!pctx.is_source_contiguous()) {
9122
            SCN_UNLIKELY_ATTR
9123
            // clang-format off
9124
            checker.on_error("Cannot read a regex from a non-contiguous source");
9125
            // clang-format on
9126
        }
9127
        if (!pctx.is_source_borrowed()) {
9128
            SCN_UNLIKELY_ATTR
9129
            checker.on_error("Cannot read a regex from a non-borrowed source");
9130
        }
9131
    }
9132
9133
    return it;
9134
}
9135
}  // namespace detail
9136
9137
/**
9138
 * Type for discarding any scanned value.
9139
 * Example:
9140
 *
9141
 * \code{.cpp}
9142
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
9143
 * // r.has_value() == true
9144
 * // decltype(r->value()) is scn::discard<int>
9145
 * \endcode
9146
 *
9147
 * \ingroup format-string
9148
 */
9149
template <typename T>
9150
struct discard {
9151
    constexpr discard() = default;
9152
9153
    constexpr discard(const T&) noexcept {}
9154
    constexpr discard(T&&) noexcept {}
9155
9156
    constexpr discard& operator=(const T&) noexcept
9157
    {
9158
        return *this;
9159
    }
9160
    constexpr discard& operator=(T&&) noexcept
9161
    {
9162
        return *this;
9163
    }
9164
};
9165
9166
template <typename T, typename CharT>
9167
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
9168
    template <typename Context>
9169
    auto scan(discard<T>&, Context& ctx) const
9170
    {
9171
        T val{};
9172
        return scanner<T, CharT>::scan(val, ctx);
9173
    }
9174
};
9175
9176
namespace detail {
9177
template <typename Range>
9178
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
9179
    Range r,
9180
    bool allow_exhaustion);
9181
9182
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
9183
    extern template scan_expected<Context::iterator>         \
9184
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
9185
9186
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
9187
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
9188
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
9189
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9190
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9191
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
9192
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
9193
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
9194
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
9195
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
9196
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
9197
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
9198
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
9199
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
9200
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
9201
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
9202
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
9203
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
9204
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
9205
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
9206
        std::basic_string_view<Context::char_type>, Context)               \
9207
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
9208
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
9209
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
9210
    internal_skip_classic_whitespace(Context::range_type, bool);
9211
9212
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
9213
9214
}  // namespace detail
9215
9216
/////////////////////////////////////////////////////////////////
9217
// visit_scan_arg
9218
/////////////////////////////////////////////////////////////////
9219
9220
namespace detail {
9221
9222
template <typename Visitor, typename Ctx>
9223
constexpr decltype(auto) visit_impl(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9224
2.63M
{
9225
2.63M
#define SCN_VISIT(Type)                                                \
9226
9.44M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
9.44M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
9.44M
    }                                                                  \
9229
9.44M
    else {                                                             \
9230
9.44M
        return vis(monostate_val);                                     \
9231
9.44M
    }
9232
9233
2.63M
    monostate monostate_val{};
9234
9235
2.63M
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
105k
        case detail::arg_type::narrow_string_view_type:
9273
105k
            SCN_VISIT(std::string_view);
9274
337k
        case detail::arg_type::narrow_string_type:
9275
337k
            SCN_VISIT(std::string);
9276
1.10M
        case detail::arg_type::wide_string_view_type:
9277
1.10M
            SCN_VISIT(std::wstring_view);
9278
2.63M
        case detail::arg_type::wide_string_type:
9279
2.63M
            SCN_VISIT(std::wstring);
9280
2.63M
        case detail::arg_type::narrow_regex_matches_type:
9281
2.63M
            SCN_VISIT(regex_matches);
9282
2.63M
        case detail::arg_type::wide_regex_matches_type:
9283
2.63M
            SCN_VISIT(wregex_matches);
9284
9285
2.63M
        case detail::arg_type::custom_type:
9286
2.63M
#if !SCN_DISABLE_TYPE_CUSTOM
9287
2.63M
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
2.63M
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
2.63M
            SCN_CLANG_POP
9303
2.63M
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
122k
{
9225
122k
#define SCN_VISIT(Type)                                                \
9226
122k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
122k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
122k
    }                                                                  \
9229
122k
    else {                                                             \
9230
122k
        return vis(monostate_val);                                     \
9231
122k
    }
9232
9233
122k
    monostate monostate_val{};
9234
9235
122k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
61.0k
        case detail::arg_type::narrow_string_view_type:
9273
61.0k
            SCN_VISIT(std::string_view);
9274
122k
        case detail::arg_type::narrow_string_type:
9275
122k
            SCN_VISIT(std::string);
9276
122k
        case detail::arg_type::wide_string_view_type:
9277
122k
            SCN_VISIT(std::wstring_view);
9278
122k
        case detail::arg_type::wide_string_type:
9279
122k
            SCN_VISIT(std::wstring);
9280
122k
        case detail::arg_type::narrow_regex_matches_type:
9281
122k
            SCN_VISIT(regex_matches);
9282
122k
        case detail::arg_type::wide_regex_matches_type:
9283
122k
            SCN_VISIT(wregex_matches);
9284
9285
122k
        case detail::arg_type::custom_type:
9286
122k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
122k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
122k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
122k
            SCN_CLANG_POP
9303
122k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
72.7k
{
9225
72.7k
#define SCN_VISIT(Type)                                                \
9226
72.7k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
72.7k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
72.7k
    }                                                                  \
9229
72.7k
    else {                                                             \
9230
72.7k
        return vis(monostate_val);                                     \
9231
72.7k
    }
9232
9233
72.7k
    monostate monostate_val{};
9234
9235
72.7k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
72.7k
        case detail::arg_type::narrow_string_type:
9275
72.7k
            SCN_VISIT(std::string);
9276
72.7k
        case detail::arg_type::wide_string_view_type:
9277
72.7k
            SCN_VISIT(std::wstring_view);
9278
72.7k
        case detail::arg_type::wide_string_type:
9279
72.7k
            SCN_VISIT(std::wstring);
9280
72.7k
        case detail::arg_type::narrow_regex_matches_type:
9281
72.7k
            SCN_VISIT(regex_matches);
9282
72.7k
        case detail::arg_type::wide_regex_matches_type:
9283
72.7k
            SCN_VISIT(wregex_matches);
9284
9285
72.7k
        case detail::arg_type::custom_type:
9286
72.7k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
72.7k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
72.7k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
72.7k
            SCN_CLANG_POP
9303
72.7k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
89.8k
{
9225
89.8k
#define SCN_VISIT(Type)                                                \
9226
89.8k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
89.8k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
89.8k
    }                                                                  \
9229
89.8k
    else {                                                             \
9230
89.8k
        return vis(monostate_val);                                     \
9231
89.8k
    }
9232
9233
89.8k
    monostate monostate_val{};
9234
9235
89.8k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
44.9k
        case detail::arg_type::narrow_string_view_type:
9273
44.9k
            SCN_VISIT(std::string_view);
9274
89.8k
        case detail::arg_type::narrow_string_type:
9275
89.8k
            SCN_VISIT(std::string);
9276
89.8k
        case detail::arg_type::wide_string_view_type:
9277
89.8k
            SCN_VISIT(std::wstring_view);
9278
89.8k
        case detail::arg_type::wide_string_type:
9279
89.8k
            SCN_VISIT(std::wstring);
9280
89.8k
        case detail::arg_type::narrow_regex_matches_type:
9281
89.8k
            SCN_VISIT(regex_matches);
9282
89.8k
        case detail::arg_type::wide_regex_matches_type:
9283
89.8k
            SCN_VISIT(wregex_matches);
9284
9285
89.8k
        case detail::arg_type::custom_type:
9286
89.8k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
89.8k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
89.8k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
89.8k
            SCN_CLANG_POP
9303
89.8k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
52.7k
{
9225
52.7k
#define SCN_VISIT(Type)                                                \
9226
52.7k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
52.7k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
52.7k
    }                                                                  \
9229
52.7k
    else {                                                             \
9230
52.7k
        return vis(monostate_val);                                     \
9231
52.7k
    }
9232
9233
52.7k
    monostate monostate_val{};
9234
9235
52.7k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
52.7k
        case detail::arg_type::narrow_string_type:
9275
52.7k
            SCN_VISIT(std::string);
9276
52.7k
        case detail::arg_type::wide_string_view_type:
9277
52.7k
            SCN_VISIT(std::wstring_view);
9278
52.7k
        case detail::arg_type::wide_string_type:
9279
52.7k
            SCN_VISIT(std::wstring);
9280
52.7k
        case detail::arg_type::narrow_regex_matches_type:
9281
52.7k
            SCN_VISIT(regex_matches);
9282
52.7k
        case detail::arg_type::wide_regex_matches_type:
9283
52.7k
            SCN_VISIT(wregex_matches);
9284
9285
52.7k
        case detail::arg_type::custom_type:
9286
52.7k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
52.7k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
52.7k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
52.7k
            SCN_CLANG_POP
9303
52.7k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
909k
{
9225
909k
#define SCN_VISIT(Type)                                                \
9226
909k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
909k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
909k
    }                                                                  \
9229
909k
    else {                                                             \
9230
909k
        return vis(monostate_val);                                     \
9231
909k
    }
9232
9233
909k
    monostate monostate_val{};
9234
9235
909k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
454k
        case detail::arg_type::wide_string_view_type:
9277
454k
            SCN_VISIT(std::wstring_view);
9278
909k
        case detail::arg_type::wide_string_type:
9279
909k
            SCN_VISIT(std::wstring);
9280
909k
        case detail::arg_type::narrow_regex_matches_type:
9281
909k
            SCN_VISIT(regex_matches);
9282
909k
        case detail::arg_type::wide_regex_matches_type:
9283
909k
            SCN_VISIT(wregex_matches);
9284
9285
909k
        case detail::arg_type::custom_type:
9286
909k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
909k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
909k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
909k
            SCN_CLANG_POP
9303
909k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
620k
{
9225
620k
#define SCN_VISIT(Type)                                                \
9226
620k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
620k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
620k
    }                                                                  \
9229
620k
    else {                                                             \
9230
620k
        return vis(monostate_val);                                     \
9231
620k
    }
9232
9233
620k
    monostate monostate_val{};
9234
9235
620k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
310k
        case detail::arg_type::wide_string_view_type:
9277
310k
            SCN_VISIT(std::wstring_view);
9278
620k
        case detail::arg_type::wide_string_type:
9279
620k
            SCN_VISIT(std::wstring);
9280
620k
        case detail::arg_type::narrow_regex_matches_type:
9281
620k
            SCN_VISIT(regex_matches);
9282
620k
        case detail::arg_type::wide_regex_matches_type:
9283
620k
            SCN_VISIT(wregex_matches);
9284
9285
620k
        case detail::arg_type::custom_type:
9286
620k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
620k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
620k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
620k
            SCN_CLANG_POP
9303
620k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
454k
{
9225
454k
#define SCN_VISIT(Type)                                                \
9226
454k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
454k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
454k
    }                                                                  \
9229
454k
    else {                                                             \
9230
454k
        return vis(monostate_val);                                     \
9231
454k
    }
9232
9233
454k
    monostate monostate_val{};
9234
9235
454k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
0
        case detail::arg_type::wide_string_view_type:
9277
0
            SCN_VISIT(std::wstring_view);
9278
454k
        case detail::arg_type::wide_string_type:
9279
454k
            SCN_VISIT(std::wstring);
9280
454k
        case detail::arg_type::narrow_regex_matches_type:
9281
454k
            SCN_VISIT(regex_matches);
9282
454k
        case detail::arg_type::wide_regex_matches_type:
9283
454k
            SCN_VISIT(wregex_matches);
9284
9285
454k
        case detail::arg_type::custom_type:
9286
454k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
454k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
454k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
454k
            SCN_CLANG_POP
9303
454k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
310k
{
9225
310k
#define SCN_VISIT(Type)                                                \
9226
310k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
310k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
310k
    }                                                                  \
9229
310k
    else {                                                             \
9230
310k
        return vis(monostate_val);                                     \
9231
310k
    }
9232
9233
310k
    monostate monostate_val{};
9234
9235
310k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
0
        case detail::arg_type::wide_string_view_type:
9277
0
            SCN_VISIT(std::wstring_view);
9278
310k
        case detail::arg_type::wide_string_type:
9279
310k
            SCN_VISIT(std::wstring);
9280
310k
        case detail::arg_type::narrow_regex_matches_type:
9281
310k
            SCN_VISIT(regex_matches);
9282
310k
        case detail::arg_type::wide_regex_matches_type:
9283
310k
            SCN_VISIT(wregex_matches);
9284
9285
310k
        case detail::arg_type::custom_type:
9286
310k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
310k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
310k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
310k
            SCN_CLANG_POP
9303
310k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
9310
9311
}  // namespace detail
9312
9313
template <typename Visitor, typename Ctx>
9314
[[deprecated("Use basic_scan_arg::visit instead")]] constexpr decltype(auto)
9315
visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9316
{
9317
    return detail::visit_impl(SCN_FWD(vis), arg);
9318
}
9319
9320
template <typename Context>
9321
template <typename Visitor>
9322
constexpr decltype(auto) basic_scan_arg<Context>::visit(Visitor&& vis)
9323
2.63M
{
9324
2.63M
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
2.63M
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9323
122k
{
9324
122k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
122k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
9323
72.7k
{
9324
72.7k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
72.7k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9323
89.8k
{
9324
89.8k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
89.8k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
9323
52.7k
{
9324
52.7k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
52.7k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9323
909k
{
9324
909k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
909k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9323
620k
{
9324
620k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
620k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
9323
454k
{
9324
454k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
454k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
9323
310k
{
9324
310k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
310k
}
9326
9327
template <typename Context>
9328
template <typename R, typename Visitor>
9329
constexpr R basic_scan_arg<Context>::visit(Visitor&& vis)
9330
{
9331
    return detail::visit_impl(SCN_FWD(vis), *this);
9332
}
9333
9334
/////////////////////////////////////////////////////////////////
9335
// vscan
9336
/////////////////////////////////////////////////////////////////
9337
9338
/**
9339
 * \defgroup vscan Type-erased scanning API
9340
 *
9341
 * \brief Lower-level scanning API with type-erased arguments
9342
 */
9343
9344
namespace detail {
9345
template <typename Source>
9346
using scan_result_value_type =
9347
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
9348
                       std::FILE*,
9349
                       borrowed_tail_subrange_t<Source>>;
9350
}
9351
9352
/**
9353
 * Result type returned by `vscan`.
9354
 *
9355
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
9356
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
9357
 *
9358
 * \ingroup vscan
9359
 */
9360
template <typename Source>
9361
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
9362
9363
namespace detail {
9364
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
9365
                                         std::string_view format,
9366
                                         scan_args args);
9367
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
9368
                                         std::string_view format,
9369
                                         scan_args args);
9370
9371
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
9372
                                         std::wstring_view format,
9373
                                         wscan_args args);
9374
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
9375
                                         std::wstring_view format,
9376
                                         wscan_args args);
9377
9378
#if !SCN_DISABLE_LOCALE
9379
template <typename Locale>
9380
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9381
                                                   std::string_view source,
9382
                                                   std::string_view format,
9383
                                                   scan_args args);
9384
template <typename Locale>
9385
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9386
                                                   scan_buffer& source,
9387
                                                   std::string_view format,
9388
                                                   scan_args args);
9389
9390
template <typename Locale>
9391
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9392
                                                   std::wstring_view source,
9393
                                                   std::wstring_view format,
9394
                                                   wscan_args args);
9395
template <typename Locale>
9396
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9397
                                                   wscan_buffer& source,
9398
                                                   std::wstring_view format,
9399
                                                   wscan_args args);
9400
#endif
9401
9402
scan_expected<std::ptrdiff_t> vscan_value_impl(
9403
    std::string_view source,
9404
    basic_scan_arg<scan_context> arg);
9405
scan_expected<std::ptrdiff_t> vscan_value_impl(
9406
    scan_buffer& source,
9407
    basic_scan_arg<scan_context> arg);
9408
9409
scan_expected<std::ptrdiff_t> vscan_value_impl(
9410
    std::wstring_view source,
9411
    basic_scan_arg<wscan_context> arg);
9412
scan_expected<std::ptrdiff_t> vscan_value_impl(
9413
    wscan_buffer& source,
9414
    basic_scan_arg<wscan_context> arg);
9415
9416
template <typename Range, typename CharT>
9417
auto vscan_generic(Range&& range,
9418
                   std::basic_string_view<CharT> format,
9419
                   basic_scan_args<detail::default_context<CharT>> args)
9420
    -> vscan_result<Range>
9421
1.07M
{
9422
1.07M
    auto buffer = make_scan_buffer(range);
9423
9424
1.07M
    auto result = vscan_impl(buffer, format, args);
9425
1.07M
    if (SCN_UNLIKELY(!result)) {
9426
47.5k
        return unexpected(result.error());
9427
47.5k
    }
9428
1.02M
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
1.07M
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9421
89.1k
{
9422
89.1k
    auto buffer = make_scan_buffer(range);
9423
9424
89.1k
    auto result = vscan_impl(buffer, format, args);
9425
89.1k
    if (SCN_UNLIKELY(!result)) {
9426
10.5k
        return unexpected(result.error());
9427
10.5k
    }
9428
78.5k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
89.1k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9421
52.3k
{
9422
52.3k
    auto buffer = make_scan_buffer(range);
9423
9424
52.3k
    auto result = vscan_impl(buffer, format, args);
9425
52.3k
    if (SCN_UNLIKELY(!result)) {
9426
5.28k
        return unexpected(result.error());
9427
5.28k
    }
9428
47.0k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
52.3k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9421
620k
{
9422
620k
    auto buffer = make_scan_buffer(range);
9423
9424
620k
    auto result = vscan_impl(buffer, format, args);
9425
620k
    if (SCN_UNLIKELY(!result)) {
9426
21.1k
        return unexpected(result.error());
9427
21.1k
    }
9428
599k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
620k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9421
310k
{
9422
310k
    auto buffer = make_scan_buffer(range);
9423
9424
310k
    auto result = vscan_impl(buffer, format, args);
9425
310k
    if (SCN_UNLIKELY(!result)) {
9426
10.5k
        return unexpected(result.error());
9427
10.5k
    }
9428
299k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
310k
}
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS3_17basic_string_viewIT0_NS5_ISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
9430
9431
template <typename Locale, typename Range, typename CharT>
9432
auto vscan_localized_generic(
9433
    const Locale& loc,
9434
    Range&& range,
9435
    std::basic_string_view<CharT> format,
9436
    basic_scan_args<detail::default_context<CharT>> args) -> vscan_result<Range>
9437
1.07M
{
9438
1.07M
#if !SCN_DISABLE_LOCALE
9439
1.07M
    auto buffer = detail::make_scan_buffer(range);
9440
9441
1.07M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
1.07M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
1.07M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
1.07M
    if (SCN_UNLIKELY(!result)) {
9446
47.5k
        return unexpected(result.error());
9447
47.5k
    }
9448
1.02M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
1.07M
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9437
89.1k
{
9438
89.1k
#if !SCN_DISABLE_LOCALE
9439
89.1k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
89.1k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
89.1k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
89.1k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
89.1k
    if (SCN_UNLIKELY(!result)) {
9446
10.5k
        return unexpected(result.error());
9447
10.5k
    }
9448
78.5k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
89.1k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9437
52.3k
{
9438
52.3k
#if !SCN_DISABLE_LOCALE
9439
52.3k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
52.3k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
52.3k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
52.3k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
52.3k
    if (SCN_UNLIKELY(!result)) {
9446
5.28k
        return unexpected(result.error());
9447
5.28k
    }
9448
47.0k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
52.3k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9437
620k
{
9438
620k
#if !SCN_DISABLE_LOCALE
9439
620k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
620k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
620k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
620k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
620k
    if (SCN_UNLIKELY(!result)) {
9446
21.1k
        return unexpected(result.error());
9447
21.1k
    }
9448
599k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
620k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9437
310k
{
9438
310k
#if !SCN_DISABLE_LOCALE
9439
310k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
310k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
310k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
310k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
310k
    if (SCN_UNLIKELY(!result)) {
9446
10.5k
        return unexpected(result.error());
9447
10.5k
    }
9448
299k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
310k
}
9456
9457
template <typename Range, typename CharT>
9458
auto vscan_value_generic(Range&& range,
9459
                         basic_scan_arg<detail::default_context<CharT>> arg)
9460
    -> vscan_result<Range>
9461
519k
{
9462
519k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
519k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
519k
    if (SCN_UNLIKELY(!result)) {
9466
7.92k
        return unexpected(result.error());
9467
7.92k
    }
9468
511k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
519k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
40.6k
{
9462
40.6k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
40.6k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
40.6k
    if (SCN_UNLIKELY(!result)) {
9466
1.76k
        return unexpected(result.error());
9467
1.76k
    }
9468
38.9k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
40.6k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
24.2k
{
9462
24.2k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
24.2k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
24.2k
    if (SCN_UNLIKELY(!result)) {
9466
881
        return unexpected(result.error());
9467
881
    }
9468
23.3k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
24.2k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
303k
{
9462
303k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
303k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
303k
    if (SCN_UNLIKELY(!result)) {
9466
3.52k
        return unexpected(result.error());
9467
3.52k
    }
9468
299k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
303k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
151k
{
9462
151k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
151k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
151k
    if (SCN_UNLIKELY(!result)) {
9466
1.76k
        return unexpected(result.error());
9467
1.76k
    }
9468
149k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
151k
}
9470
}  // namespace detail
9471
9472
SCN_GCC_PUSH
9473
SCN_GCC_IGNORE("-Wnoexcept")
9474
9475
/**
9476
 * Perform actual scanning from `source`, according to `format`, into the
9477
 * type-erased arguments at `args`. Called by `scan`.
9478
 *
9479
 * \ingroup vscan
9480
 */
9481
template <typename Source>
9482
auto vscan(Source&& source, std::string_view format, scan_args args)
9483
    -> vscan_result<Source>
9484
141k
{
9485
141k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
141k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9484
89.1k
{
9485
89.1k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
89.1k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9484
52.3k
{
9485
52.3k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
52.3k
}
Unexecuted instantiation: _ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS6_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIcNSD_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS6_16buffer_range_tagEcEEEE
Unexecuted instantiation: _ZN3scn2v45vscanIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS2_17basic_string_viewIcS5_EENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
9487
9488
/**
9489
 * Perform actual scanning from `source`, according to `format`, into the
9490
 * type-erased arguments at `args`, using `loc`, if requested. Called by
9491
 * `scan`.
9492
 *
9493
 * \ingroup locale
9494
 */
9495
template <typename Source,
9496
          typename Locale,
9497
          typename = std::void_t<decltype(Locale::classic())>>
9498
auto vscan(const Locale& loc,
9499
           Source&& source,
9500
           std::string_view format,
9501
           scan_args args) -> vscan_result<Source>
9502
141k
{
9503
141k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
141k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSI_16buffer_range_tagEcEEEE
Line
Count
Source
9502
89.1k
{
9503
89.1k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
89.1k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSN_16buffer_range_tagEcEEEE
Line
Count
Source
9502
52.3k
{
9503
52.3k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
52.3k
}
9505
9506
/**
9507
 * Perform actual scanning from `source` into the type-erased argument at
9508
 * `arg`. Called by `scan_value`.
9509
 *
9510
 * \ingroup vscan
9511
 */
9512
template <typename Source>
9513
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
9514
    -> vscan_result<Source>
9515
64.9k
{
9516
64.9k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
64.9k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9515
40.6k
{
9516
40.6k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
40.6k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9515
24.2k
{
9516
24.2k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
24.2k
}
9518
9519
/**
9520
 * Perform actual scanning from `stdin`, according to `format`, into the
9521
 * type-erased arguments at `args`. Called by `input`.
9522
 *
9523
 * \ingroup vscan
9524
 */
9525
scan_expected<void> vinput(std::string_view format, scan_args args);
9526
9527
namespace detail {
9528
template <typename T>
9529
auto scan_int_impl(std::string_view source, T& value, int base)
9530
    -> scan_expected<std::string_view::iterator>;
9531
9532
template <typename T>
9533
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
9534
9535
#if !SCN_DISABLE_TYPE_SCHAR
9536
extern template auto scan_int_impl(std::string_view source,
9537
                                   signed char& value,
9538
                                   int base)
9539
    -> scan_expected<std::string_view::iterator>;
9540
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9541
    -> signed char;
9542
#endif
9543
#if !SCN_DISABLE_TYPE_SHORT
9544
extern template auto scan_int_impl(std::string_view source,
9545
                                   short& value,
9546
                                   int base)
9547
    -> scan_expected<std::string_view::iterator>;
9548
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
9549
#endif
9550
#if !SCN_DISABLE_TYPE_INT
9551
extern template auto scan_int_impl(std::string_view source,
9552
                                   int& value,
9553
                                   int base)
9554
    -> scan_expected<std::string_view::iterator>;
9555
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
9556
#endif
9557
#if !SCN_DISABLE_TYPE_LONG
9558
extern template auto scan_int_impl(std::string_view source,
9559
                                   long& value,
9560
                                   int base)
9561
    -> scan_expected<std::string_view::iterator>;
9562
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
9563
#endif
9564
#if !SCN_DISABLE_TYPE_LONG_LONG
9565
extern template auto scan_int_impl(std::string_view source,
9566
                                   long long& value,
9567
                                   int base)
9568
    -> scan_expected<std::string_view::iterator>;
9569
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9570
    -> long long;
9571
#endif
9572
#if !SCN_DISABLE_TYPE_UCHAR
9573
extern template auto scan_int_impl(std::string_view source,
9574
                                   unsigned char& value,
9575
                                   int base)
9576
    -> scan_expected<std::string_view::iterator>;
9577
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9578
    -> unsigned char;
9579
#endif
9580
#if !SCN_DISABLE_TYPE_USHORT
9581
extern template auto scan_int_impl(std::string_view source,
9582
                                   unsigned short& value,
9583
                                   int base)
9584
    -> scan_expected<std::string_view::iterator>;
9585
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9586
    -> unsigned short;
9587
#endif
9588
#if !SCN_DISABLE_TYPE_UINT
9589
extern template auto scan_int_impl(std::string_view source,
9590
                                   unsigned int& value,
9591
                                   int base)
9592
    -> scan_expected<std::string_view::iterator>;
9593
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9594
    -> unsigned int;
9595
#endif
9596
#if !SCN_DISABLE_TYPE_ULONG
9597
extern template auto scan_int_impl(std::string_view source,
9598
                                   unsigned long& value,
9599
                                   int base)
9600
    -> scan_expected<std::string_view::iterator>;
9601
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9602
    -> unsigned long;
9603
#endif
9604
#if !SCN_DISABLE_TYPE_ULONG_LONG
9605
extern template auto scan_int_impl(std::string_view source,
9606
                                   unsigned long long& value,
9607
                                   int base)
9608
    -> scan_expected<std::string_view::iterator>;
9609
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9610
    -> unsigned long long;
9611
#endif
9612
9613
}  // namespace detail
9614
9615
SCN_GCC_POP  // -Wnoexcept
9616
9617
    // dummy namespace to reset formatting
9618
    namespace detail
9619
{
9620
}
9621
9622
/////////////////////////////////////////////////////////////////
9623
// scan
9624
/////////////////////////////////////////////////////////////////
9625
9626
/**
9627
 * The return type of `scan`, based on the type of the source, and the
9628
 * types of the scanned arguments.
9629
 */
9630
template <typename Source, typename... Args>
9631
using scan_result_type =
9632
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
9633
9634
/**
9635
 * If `in` contains a successful result as returned from `vscan`,
9636
 * the range contained in `out` is set to `*in`.
9637
 * Otherwise, `unexpected(in.error())` is stored in `out`.
9638
 */
9639
template <typename Result,
9640
          typename Range,
9641
          std::enable_if_t<std::conjunction_v<
9642
              detail::is_specialization_of<Result, scan_result>,
9643
              std::is_same<typename Result::range_type, Range>>>* = nullptr>
9644
void fill_scan_result(scan_expected<Result>& out, scan_expected<Range>&& in)
9645
2.66M
{
9646
2.66M
    if (SCN_UNLIKELY(!in)) {
9647
103k
        out = unexpected(in.error());
9648
103k
    }
9649
2.56M
    else {
9650
2.56M
        out->set_range(SCN_MOVE(*in));
9651
2.56M
    }
9652
2.66M
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9645
109k
{
9646
109k
    if (SCN_UNLIKELY(!in)) {
9647
11.4k
        out = unexpected(in.error());
9648
11.4k
    }
9649
97.9k
    else {
9650
97.9k
        out->set_range(SCN_MOVE(*in));
9651
97.9k
    }
9652
109k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9645
109k
{
9646
109k
    if (SCN_UNLIKELY(!in)) {
9647
11.4k
        out = unexpected(in.error());
9648
11.4k
    }
9649
97.9k
    else {
9650
97.9k
        out->set_range(SCN_MOVE(*in));
9651
97.9k
    }
9652
109k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9645
129k
{
9646
129k
    if (SCN_UNLIKELY(!in)) {
9647
11.4k
        out = unexpected(in.error());
9648
11.4k
    }
9649
117k
    else {
9650
117k
        out->set_range(SCN_MOVE(*in));
9651
117k
    }
9652
129k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9645
772k
{
9646
772k
    if (SCN_UNLIKELY(!in)) {
9647
22.9k
        out = unexpected(in.error());
9648
22.9k
    }
9649
749k
    else {
9650
749k
        out->set_range(SCN_MOVE(*in));
9651
749k
    }
9652
772k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9645
772k
{
9646
772k
    if (SCN_UNLIKELY(!in)) {
9647
22.9k
        out = unexpected(in.error());
9648
22.9k
    }
9649
749k
    else {
9650
749k
        out->set_range(SCN_MOVE(*in));
9651
749k
    }
9652
772k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9645
772k
{
9646
772k
    if (SCN_UNLIKELY(!in)) {
9647
22.9k
        out = unexpected(in.error());
9648
22.9k
    }
9649
749k
    else {
9650
749k
        out->set_range(SCN_MOVE(*in));
9651
749k
    }
9652
772k
}
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEESB_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSG_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISG_EEONSS_ISM_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
9653
9654
/**
9655
 * Returns an empty result type for a source of type `Source`, and arguments of
9656
 * type `Args...`.
9657
 */
9658
template <typename Source, typename... Args>
9659
auto make_scan_result()
9660
2.66M
{
9661
2.66M
    return scan_result_type<Source, Args...>();
9662
2.66M
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9660
109k
{
9661
109k
    return scan_result_type<Source, Args...>();
9662
109k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
9660
109k
{
9661
109k
    return scan_result_type<Source, Args...>();
9662
109k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9660
129k
{
9661
129k
    return scan_result_type<Source, Args...>();
9662
129k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9660
772k
{
9661
772k
    return scan_result_type<Source, Args...>();
9662
772k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
9660
772k
{
9661
772k
    return scan_result_type<Source, Args...>();
9662
772k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9660
772k
{
9661
772k
    return scan_result_type<Source, Args...>();
9662
772k
}
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
9663
9664
template <typename Source, typename... Args>
9665
auto make_scan_result(std::tuple<Args...>&& initial_values)
9666
{
9667
    using type = scan_result_type<Source, Args...>;
9668
    using subrange_type = typename type::value_type::range_type;
9669
    return type{std::in_place, subrange_type{}, SCN_MOVE(initial_values)};
9670
}
9671
9672
/**
9673
 * \defgroup scan Basic scanning API
9674
 *
9675
 * \brief The core public-facing interface of the library
9676
 *
9677
 * The following functions use a format string syntax similar to that of
9678
 * `std::format`. See more at \ref format-string.
9679
 *
9680
 * When these functions take a `source` as input, it must
9681
 * model the `scannable_source` concept. See more at \ref scannable.
9682
 */
9683
9684
/**
9685
 * Scans `Args...` from `source`, according to the
9686
 * specifications given in the format string (`format`).
9687
 * Returns the resulting values in an object of type `scan_result`,
9688
 * alongside a `subrange` pointing to the unused input.
9689
 *
9690
 * Example:
9691
 * \code{.cpp}
9692
 * if (auto result = scn::scan<int>("123", "{}"))
9693
 *     int value = result->value();
9694
 * \endcode
9695
 *
9696
 * \ingroup scan
9697
 */
9698
template <typename... Args,
9699
          typename Source,
9700
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9701
SCN_NODISCARD auto scan(Source&& source,
9702
                        scan_format_string<Source, Args...> format)
9703
    -> scan_result_type<Source, Args...>
9704
141k
{
9705
141k
    auto result = make_scan_result<Source, Args...>();
9706
141k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
141k
                                   make_scan_args(result->values())));
9708
141k
    return result;
9709
141k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
9704
44.5k
{
9705
44.5k
    auto result = make_scan_result<Source, Args...>();
9706
44.5k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
44.5k
                                   make_scan_args(result->values())));
9708
44.5k
    return result;
9709
44.5k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
9704
44.5k
{
9705
44.5k
    auto result = make_scan_result<Source, Args...>();
9706
44.5k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
44.5k
                                   make_scan_args(result->values())));
9708
44.5k
    return result;
9709
44.5k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
9704
52.3k
{
9705
52.3k
    auto result = make_scan_result<Source, Args...>();
9706
52.3k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
52.3k
                                   make_scan_args(result->values())));
9708
52.3k
    return result;
9709
52.3k
}
Unexecuted instantiation: _ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS9_18default_sentinel_tEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESQ_NSD_22borrowed_tail_subrangeISM_Xsr6rangesE14borrowed_rangeISM_EEE4typeEE4typeEJDpT_EEEEEOSM_NS0_24basic_scan_format_stringIcNSD_13type_identityISM_E4typeEJDpNS12_ISW_E4typeEEEE
Unexecuted instantiation: _ZN3scn2v44scanIJdERNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
9710
9711
/**
9712
 * `scan` with explicitly supplied default values
9713
 *
9714
 * Can be used, for example, for pre-allocating a scanned string:
9715
 *
9716
 * \code{.cpp}
9717
 * std::string str;
9718
 * str.reserve(64);
9719
 *
9720
 * // As long as the read string fits in `str`,
9721
 * // does not allocate
9722
 * auto result = scn::scan<std::string>(source, "{}",
9723
 *                                      {std::move(str)});
9724
 * // Access the read string with result->value()
9725
 * \endcode
9726
 *
9727
 * \ingroup scan
9728
 */
9729
template <typename... Args,
9730
          typename Source,
9731
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9732
SCN_NODISCARD auto scan(Source&& source,
9733
                        scan_format_string<Source, Args...> format,
9734
                        std::tuple<Args...>&& initial_args)
9735
    -> scan_result_type<Source, Args...>
9736
{
9737
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9738
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9739
                                   make_scan_args(result->values())));
9740
    return result;
9741
}
9742
9743
/**
9744
 * \defgroup locale Localization
9745
 *
9746
 * \brief Scanning APIs that allow passing in a locale
9747
 */
9748
9749
/**
9750
 * `scan` using an explicit locale.
9751
 *
9752
 * Has no effect on its own, locale-specific scanning still needs to be
9753
 * opted-into on an argument-by-argument basis, with the `L` format string
9754
 * specifier.
9755
 *
9756
 * \code{.cpp}
9757
 * auto result = scn::scan<double>(
9758
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
9759
 * // result->value() == 3.14
9760
 * \endcode
9761
 *
9762
 * \ingroup locale
9763
 */
9764
template <typename... Args,
9765
          typename Locale,
9766
          typename Source,
9767
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9768
          typename = std::void_t<decltype(Locale::classic())>>
9769
SCN_NODISCARD auto scan(const Locale& loc,
9770
                        Source&& source,
9771
                        scan_format_string<Source, Args...> format)
9772
    -> scan_result_type<Source, Args...>
9773
141k
{
9774
141k
    auto result = make_scan_result<Source, Args...>();
9775
141k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
141k
                                   make_scan_args(result->values())));
9777
141k
    return result;
9778
141k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
9773
44.5k
{
9774
44.5k
    auto result = make_scan_result<Source, Args...>();
9775
44.5k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
44.5k
                                   make_scan_args(result->values())));
9777
44.5k
    return result;
9778
44.5k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
9773
44.5k
{
9774
44.5k
    auto result = make_scan_result<Source, Args...>();
9775
44.5k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
44.5k
                                   make_scan_args(result->values())));
9777
44.5k
    return result;
9778
44.5k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
9773
52.3k
{
9774
52.3k
    auto result = make_scan_result<Source, Args...>();
9775
52.3k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
52.3k
                                   make_scan_args(result->values())));
9777
52.3k
    return result;
9778
52.3k
}
9779
9780
/**
9781
 * `scan` with a locale and default values
9782
 *
9783
 * \ingroup locale
9784
 */
9785
template <typename... Args,
9786
          typename Locale,
9787
          typename Source,
9788
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9789
          typename = std::void_t<decltype(Locale::classic())>>
9790
SCN_NODISCARD auto scan(const Locale& loc,
9791
                        Source&& source,
9792
                        scan_format_string<Source, Args...> format,
9793
                        std::tuple<Args...>&& initial_args)
9794
    -> scan_result_type<Source, Args...>
9795
{
9796
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9797
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9798
                                   make_scan_args(result->values())));
9799
    return result;
9800
}
9801
9802
/**
9803
 * `scan` a single value, with default options.
9804
 *
9805
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
9806
 * except it can skip parsing the format string, gaining performance.
9807
 *
9808
 * \ingroup scan
9809
 */
9810
template <typename T,
9811
          typename Source,
9812
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9813
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
9814
64.9k
{
9815
64.9k
    auto result = make_scan_result<Source, T>();
9816
64.9k
    fill_scan_result(
9817
64.9k
        result, vscan_value(SCN_FWD(source),
9818
64.9k
                            detail::make_arg<scan_context>(result->value())));
9819
64.9k
    return result;
9820
64.9k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
9814
20.3k
{
9815
20.3k
    auto result = make_scan_result<Source, T>();
9816
20.3k
    fill_scan_result(
9817
20.3k
        result, vscan_value(SCN_FWD(source),
9818
20.3k
                            detail::make_arg<scan_context>(result->value())));
9819
20.3k
    return result;
9820
20.3k
}
_ZN3scn2v410scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
9814
20.3k
{
9815
20.3k
    auto result = make_scan_result<Source, T>();
9816
20.3k
    fill_scan_result(
9817
20.3k
        result, vscan_value(SCN_FWD(source),
9818
20.3k
                            detail::make_arg<scan_context>(result->value())));
9819
20.3k
    return result;
9820
20.3k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
9814
24.2k
{
9815
24.2k
    auto result = make_scan_result<Source, T>();
9816
24.2k
    fill_scan_result(
9817
24.2k
        result, vscan_value(SCN_FWD(source),
9818
24.2k
                            detail::make_arg<scan_context>(result->value())));
9819
24.2k
    return result;
9820
24.2k
}
9821
9822
/**
9823
 * `scan` a single value, with default options, and a default value.
9824
 *
9825
 * \ingroup scan
9826
 */
9827
template <typename T,
9828
          typename Source,
9829
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
9830
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
9831
    -> scan_result_type<Source, T>
9832
{
9833
    auto result =
9834
        make_scan_result<Source>(std::tuple<T>{SCN_MOVE(initial_value)});
9835
    fill_scan_result(
9836
        result, vscan_value(SCN_FWD(source),
9837
                            detail::make_arg<scan_context>(result->value())));
9838
    return result;
9839
}
9840
9841
/**
9842
 * Scan from `stdin`.
9843
 *
9844
 * Equivalent to `scn::scan<...>(stdin, ...)`.
9845
 *
9846
 * \code{.cpp}
9847
 * auto result = scn::input<int>("{}");
9848
 * \endcode
9849
 *
9850
 * \ingroup scan
9851
 */
9852
template <typename... Args>
9853
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
9854
    -> scan_result_type<std::FILE*, Args...>
9855
{
9856
    auto result = scan_result_type<std::FILE*, Args...>(std::in_place, stdin,
9857
                                                        std::tuple<Args...>{});
9858
    auto err = vinput(format, make_scan_args(result->values()));
9859
    if (SCN_UNLIKELY(!err)) {
9860
        result = unexpected(err.error());
9861
    }
9862
    return result;
9863
}
9864
9865
/**
9866
 * Write msg to stdout, and call `input<Args...>(format)`
9867
 *
9868
 * \ingroup scan
9869
 */
9870
template <typename... Args>
9871
SCN_NODISCARD auto prompt(const char* msg,
9872
                          scan_format_string<std::FILE*, Args...> format)
9873
    -> scan_result_type<std::FILE*, Args...>
9874
{
9875
    std::printf("%s", msg);
9876
    std::fflush(stdout);
9877
    return input<Args...>(format);
9878
}
9879
9880
namespace detail {
9881
template <typename T>
9882
inline constexpr bool is_scan_int_type =
9883
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
9884
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
9885
    !std::is_same_v<T, bool>;
9886
}
9887
9888
/**
9889
 * Fast integer reading.
9890
 *
9891
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9892
 * whitespace.
9893
 *
9894
 * Reads in the specified base,
9895
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9896
 * input. `base` must either be `0`, or in range `[2, 36]`.
9897
 *
9898
 * \ingroup scan
9899
 */
9900
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9901
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9902
    -> scan_result_type<std::string_view, T>
9903
{
9904
    auto result = scan_result_type<std::string_view, T>();
9905
    if (auto r = detail::scan_int_impl(source, result->value(), base);
9906
        SCN_LIKELY(r)) {
9907
        result->set_range(ranges::subrange{*r, source.end()});
9908
    }
9909
    else {
9910
        result = unexpected(r.error());
9911
    }
9912
    return result;
9913
}
9914
9915
namespace detail {
9916
template <bool Val, typename T>
9917
inline constexpr bool dependent_bool = Val;
9918
}
9919
9920
/**
9921
 * Very fast integer reading.
9922
 *
9923
 * Quickly reads an integer from a `std::string_view`.
9924
 *
9925
 * Be very careful when using this one!
9926
 * Its speed comes from some very heavy assumptions about the validity of
9927
 * the input:
9928
 *  - `source` must not be empty.
9929
 *  - `source` contains nothing but the integer: no leading or trailing
9930
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9931
 *    no `+` is allowed.
9932
 *  - The parsed value does not overflow.
9933
 *  - The input is a valid base-10 integer.
9934
 * Breaking these assumptions will lead to UB.
9935
 *
9936
 * \ingroup scan
9937
 */
9938
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9939
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9940
{
9941
    static_assert(
9942
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9943
        "scan_int_exhaustive_valid requires a little endian environment");
9944
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9945
}
9946
9947
SCN_END_NAMESPACE
9948
}  // namespace scn